增加获取表列表方法
This commit is contained in:
@@ -124,15 +124,7 @@ func initStorage(cfg config.DatabaseConfig, logger *logs.Logger) (database.Stora
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 执行数据库迁移
|
// 执行数据库迁移
|
||||||
// 这里需要添加所有需要自动迁移的模型
|
if err := storage.Migrate(models.GetAllModels()...); err != nil {
|
||||||
var dbModels = []interface{}{
|
|
||||||
&models.User{},
|
|
||||||
&models.Device{},
|
|
||||||
&models.Plan{},
|
|
||||||
&models.SubPlan{},
|
|
||||||
&models.Task{},
|
|
||||||
}
|
|
||||||
if err := storage.Migrate(dbModels...); err != nil {
|
|
||||||
return nil, fmt.Errorf("数据库迁移失败: %w", err)
|
return nil, fmt.Errorf("数据库迁移失败: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
13
internal/infra/models/models.go
Normal file
13
internal/infra/models/models.go
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// GetAllModels 返回一个包含所有数据库模型实例的切片。
|
||||||
|
// 这个函数用于在数据库初始化时自动迁移所有的表结构。
|
||||||
|
func GetAllModels() []interface{} {
|
||||||
|
return []interface{}{
|
||||||
|
&User{},
|
||||||
|
&Device{},
|
||||||
|
&Plan{},
|
||||||
|
&SubPlan{},
|
||||||
|
&Task{},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,7 +17,7 @@ func setupTestDB(t *testing.T) *gorm.DB {
|
|||||||
assert.NoError(t, err, "连接内存数据库时发生错误")
|
assert.NoError(t, err, "连接内存数据库时发生错误")
|
||||||
|
|
||||||
// 自动迁移所有需要的表结构
|
// 自动迁移所有需要的表结构
|
||||||
err = db.AutoMigrate(&models.User{}, &models.Device{}, &models.SubPlan{}, &models.Task{}, &models.Plan{})
|
err = db.AutoMigrate(models.GetAllModels()...)
|
||||||
assert.NoError(t, err, "数据库迁移时发生错误")
|
assert.NoError(t, err, "数据库迁移时发生错误")
|
||||||
|
|
||||||
return db
|
return db
|
||||||
|
|||||||
Reference in New Issue
Block a user