goProject/trunk/center/common/connection/dbHead.go
皮蛋13361098506 1b77f62820 初始化项目
2025-01-06 16:01:02 +08:00

42 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package connection
import "gorm.io/gorm"
var (
// 存放实体结构
dbModelMap = make([]interface{}, 0)
//当前管理数据库
modelDB *gorm.DB
)
// RegisterDBModel 注册数据库模型到全局变量dbModelMap中。
// 这个函数接受一个interface{}类型的参数dbModel表示数据库模型。
// 函数的目的是将传入的数据库模型添加到全局变量dbModelMap中
// 以便在其他地方可以访问和使用这些数据库模型。
func RegisterDBModel(dbModel interface{}) {
// 将dbModel的地址添加到dbModelMap中。
// 这里使用地址是因为数据库模型可能比较大,通过引用存储可以提高效率。
dbModelMap = append(dbModelMap, &dbModel)
}
// 设置modelDB 类型
func SetModelDB(db *gorm.DB) {
modelDB = db
}
// BuildDB 用于遍历dbModelMap中的所有数据库模型并检查每个模型对应的表是否存在于数据库中。
// 如果表不存在,则自动迁移(创建)该表。这样可以确保数据库模式与程序中的模型保持同步。
func BuildDB() {
// 遍历dbModelMap中的每个元素
for _, dbModel := range dbModelMap {
// 检查数据库中是否存在与dbModel对应的表
tableExists := modelDB.Migrator().HasTable(dbModel)
if !tableExists {
// 如果表不存在,则进行自动迁移
modelDB.AutoMigrate(dbModel)
}
}
}