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() {
cfg := db.ConfigFromGlobal()
if err := db.Init(cfg,
if err := db.Init(cfg, true,
model.DefaultAccount, model.DefaultAsset, model.DefaultAuthorization, model.DefaultCommand,
model.DefaultConfig, model.DefaultFileHistory, model.DefaultGateway, model.DefaultHistory,
model.DefaultNode, model.DefaultPublicKey, model.DefaultSession, model.DefaultSessionCmd,
model.DefaultShare,
model.DefaultShare, model.DefaultQuickCommand,
); err != nil {
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
}
func Init(cfg Config, models ...interface{}) error {
func Init(cfg Config, autoMigrate bool, models ...interface{}) error {
var err error
dbOnce.Do(func() {
@@ -120,13 +120,13 @@ func Init(cfg Config, models ...interface{}) error {
return
}
if len(models) > 0 {
})
if len(models) > 0 && autoMigrate {
if err = DB.AutoMigrate(models...); err != nil {
err = fmt.Errorf("auto migrate failed: %w", err)
return
}
}
})
return err
}
@@ -174,7 +174,6 @@ func DropIndex(value interface{}, indexName string) error {
return nil
}
// Initialize (backward compatibility)
func init() {
if config.Cfg == nil {
return
@@ -197,7 +196,7 @@ func init() {
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))
}
return
@@ -207,7 +206,7 @@ func init() {
if config.Cfg.Database.Host != "" {
cfg := ConfigFromGlobal()
if err := Init(cfg); err != nil {
if err := Init(cfg, false); err != nil {
logger.L().Fatal("init database failed", zap.Error(err))
}
}