重构 #4
| @@ -124,15 +124,7 @@ func initStorage(cfg config.DatabaseConfig, logger *logs.Logger) (database.Stora | ||||
| 	} | ||||
|  | ||||
| 	// 执行数据库迁移 | ||||
| 	// 这里需要添加所有需要自动迁移的模型 | ||||
| 	var dbModels = []interface{}{ | ||||
| 		&models.User{}, | ||||
| 		&models.Device{}, | ||||
| 		&models.Plan{}, | ||||
| 		&models.SubPlan{}, | ||||
| 		&models.Task{}, | ||||
| 	} | ||||
| 	if err := storage.Migrate(dbModels...); err != nil { | ||||
| 	if err := storage.Migrate(models.GetAllModels()...); err != nil { | ||||
| 		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, "连接内存数据库时发生错误") | ||||
|  | ||||
| 	// 自动迁移所有需要的表结构 | ||||
| 	err = db.AutoMigrate(&models.User{}, &models.Device{}, &models.SubPlan{}, &models.Task{}, &models.Plan{}) | ||||
| 	err = db.AutoMigrate(models.GetAllModels()...) | ||||
| 	assert.NoError(t, err, "数据库迁移时发生错误") | ||||
|  | ||||
| 	return db | ||||
|   | ||||
		Reference in New Issue
	
	Block a user