1 Star 0 Fork 0

iThings/core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
modelMigrate.go 1.95 KB
一键复制 编辑 原始数据 按行查看 历史
杨磊 提交于 2024-07-26 00:07 . feat: 完善项目
package relationDB
import (
"context"
"gitee.com/i-Things/share/conf"
"gitee.com/i-Things/share/stores"
"gorm.io/gorm/clause"
"sync"
)
var once sync.Once
func Migrate(c conf.Database) (err error) {
//if c.IsInitTable == false {
// return
//}
once.Do(func() {
db := stores.GetCommonConn(context.TODO())
var needInitColumn bool
if !db.Migrator().HasTable(&DataStatisticsInfo{}) {
//需要初始化表
needInitColumn = true
}
err = db.AutoMigrate(
&DataStatisticsInfo{},
)
if err != nil {
return
}
if needInitColumn {
err = migrateTableColumn()
}
})
return
}
func migrateTableColumn() error {
db := stores.GetCommonConn(context.TODO()).Clauses(clause.OnConflict{DoNothing: true})
if err := db.CreateInBatches(&MigrateStatisticsInfo, 100).Error; err != nil {
return err
}
return nil
}
var (
MigrateStatisticsInfo = []DataStatisticsInfo{
{
IsFilterTenant: 1,
IsFilterProject: 1,
IsFilterArea: 1,
Code: "dmDevicePower",
Type: "table",
Table: "data_dm_device_power",
Omits: "created_time,updated_time",
IsToHump: 1,
Sql: "",
OrderBy: "",
Filter: map[string]FilterKeywords{
"startDate": { //开始时间
Sql: "?>=date",
ValNum: 1,
Type: "date",
},
"endDate": { //开始时间
Sql: "?<=date",
ValNum: 1,
Type: "date",
},
},
},
{
IsFilterTenant: 1,
IsFilterProject: 1,
IsFilterArea: 1,
Code: "dmDeviceCount",
Type: "table",
Table: "dm_device_info",
Omits: "created_time,updated_time",
IsToHump: 1,
Sql: "",
OrderBy: "",
Filter: map[string]FilterKeywords{
"startDate": { //开始时间
Sql: "?>=date",
ValNum: 1,
Type: "date",
},
"endDate": { //开始时间
Sql: "?<=date",
ValNum: 1,
Type: "date",
},
},
},
}
)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/i-Things/core.git
git@gitee.com:i-Things/core.git
i-Things
core
core
v0.1.6

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385