1. 增加程序启动时自动迁移表

2. 增加设备信息model和基础操作函数
This commit is contained in:
2025-09-08 10:58:26 +08:00
parent 0895cf42b2
commit bab44e7e3a
6 changed files with 168 additions and 10 deletions

View File

@@ -8,10 +8,19 @@ import (
"time"
"git.huangwc.com/pig/pig-farm-controller/internal/logs"
"git.huangwc.com/pig/pig-farm-controller/internal/model"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
// migrateModels 需要自动迁移的数据库模型列表
var migrateModels = []interface{}{
&model.User{},
&model.OperationHistory{},
&model.Device{},
&model.DeviceControl{},
}
// PostgresStorage 代表基于PostgreSQL的存储实现
// 使用GORM作为ORM库
type PostgresStorage struct {
@@ -75,6 +84,14 @@ func (ps *PostgresStorage) Connect() error {
sqlDB.SetMaxIdleConns(ps.maxIdleConns)
sqlDB.SetConnMaxLifetime(time.Duration(ps.connMaxLifetime) * time.Second)
// 自动迁移数据库表结构
ps.logger.Info("正在自动迁移数据库表结构")
if err = ps.db.AutoMigrate(migrateModels...); err != nil {
ps.logger.Error(fmt.Sprintf("数据库表结构迁移失败: %v", err))
return fmt.Errorf("数据库表结构迁移失败: %v", err)
}
ps.logger.Info("数据库表结构迁移完成")
ps.logger.Info("PostgreSQL数据库连接成功")
return nil
}