fix(backend): database auto migrate

This commit is contained in:
pycook
2025-05-08 21:06:26 +08:00
parent f8de8a9a2e
commit 92a3d5e7da
2 changed files with 11 additions and 12 deletions

View File

@@ -24,11 +24,11 @@ var (
func initDB() { func initDB() {
cfg := db.ConfigFromGlobal() cfg := db.ConfigFromGlobal()
if err := db.Init(cfg, if err := db.Init(cfg, true,
model.DefaultAccount, model.DefaultAsset, model.DefaultAuthorization, model.DefaultCommand, model.DefaultAccount, model.DefaultAsset, model.DefaultAuthorization, model.DefaultCommand,
model.DefaultConfig, model.DefaultFileHistory, model.DefaultGateway, model.DefaultHistory, model.DefaultConfig, model.DefaultFileHistory, model.DefaultGateway, model.DefaultHistory,
model.DefaultNode, model.DefaultPublicKey, model.DefaultSession, model.DefaultSessionCmd, model.DefaultNode, model.DefaultPublicKey, model.DefaultSession, model.DefaultSessionCmd,
model.DefaultShare, model.DefaultShare, model.DefaultQuickCommand,
); err != nil { ); err != nil {
logger.L().Fatal("Failed to init database", zap.Error(err)) logger.L().Fatal("Failed to init database", zap.Error(err))
} }

View File

@@ -110,7 +110,7 @@ func Open(cfg Config) (*gorm.DB, error) {
return db, nil return db, nil
} }
func Init(cfg Config, models ...interface{}) error { func Init(cfg Config, autoMigrate bool, models ...interface{}) error {
var err error var err error
dbOnce.Do(func() { dbOnce.Do(func() {
@@ -120,14 +120,14 @@ func Init(cfg Config, models ...interface{}) error {
return return
} }
if len(models) > 0 {
if err = DB.AutoMigrate(models...); err != nil {
err = fmt.Errorf("auto migrate failed: %w", err)
return
}
}
}) })
if len(models) > 0 && autoMigrate {
if err = DB.AutoMigrate(models...); err != nil {
err = fmt.Errorf("auto migrate failed: %w", err)
}
}
return err return err
} }
@@ -174,7 +174,6 @@ func DropIndex(value interface{}, indexName string) error {
return nil return nil
} }
// Initialize (backward compatibility)
func init() { func init() {
if config.Cfg == nil { if config.Cfg == nil {
return return
@@ -197,7 +196,7 @@ func init() {
ConnMaxIdleTime: time.Minute * 10, ConnMaxIdleTime: time.Minute * 10,
} }
if err := Init(cfg); err != nil { if err := Init(cfg, false); err != nil {
logger.L().Fatal("init database failed", zap.Error(err)) logger.L().Fatal("init database failed", zap.Error(err))
} }
return return
@@ -207,7 +206,7 @@ func init() {
if config.Cfg.Database.Host != "" { if config.Cfg.Database.Host != "" {
cfg := ConfigFromGlobal() cfg := ConfigFromGlobal()
if err := Init(cfg); err != nil { if err := Init(cfg, false); err != nil {
logger.L().Fatal("init database failed", zap.Error(err)) logger.L().Fatal("init database failed", zap.Error(err))
} }
} }