43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package migrate
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
|
|
"github.com/pika-monitor/pika/internal/migrate/v0_1_1"
|
|
"github.com/pika-monitor/pika/internal/migrate/v0_1_2"
|
|
"github.com/pika-monitor/pika/internal/migrate/v0_1_3"
|
|
"github.com/pika-monitor/pika/internal/service"
|
|
"github.com/pika-monitor/pika/pkg/version"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// AutoMigrate 从开源版本升级到最新的版本
|
|
func AutoMigrate(logger *zap.Logger, db *gorm.DB, propertyService *service.PropertyService) error {
|
|
ctx := context.Background()
|
|
localVersion, _ := propertyService.GetSystemVersion(ctx)
|
|
if localVersion == "" {
|
|
localVersion = "0.1.0"
|
|
}
|
|
if strings.Compare(localVersion, "v0.1.0") < 0 {
|
|
if err := v0_1_1.Migrate(logger, db); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// 升级到 v0.1.2 版本
|
|
if strings.Compare(localVersion, "v0.1.2") < 0 {
|
|
if err := v0_1_2.Migrate(logger, db); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// 升级到 v0.1.3 版本
|
|
if strings.Compare(localVersion, "v0.1.3") < 0 {
|
|
if err := v0_1_3.Migrate(logger, db); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return propertyService.SetSystemVersion(ctx, version.Version)
|
|
}
|