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) } } }