package initialize import ( "os" "sundynix-go/global" "sundynix-go/model/radio" "sundynix-go/model/system" "go.uber.org/zap" "gorm.io/gorm" ) // Gorm 根据全局配置中的数据库类型返回对应的 *gorm.DB 实例。 // 该函数通过检查 global.Config.System.DbType 的值来决定使用哪种数据库连接。 // // 返回值: // - *gorm.DB: 返回对应数据库类型的 *gorm.DB 实例 func Gorm() *gorm.DB { switch global.Config.System.DbType { case "mysql": return GormMysql() // 返回 MySQL 数据库的 *gorm.DB 实例 case "pgsql": return GromPgsql() // 返回 PostgreSQL 数据库的 *gorm.DB 实例 case "sqlite": return GormSqlite() // 返回 SQLite 数据库的 *gorm.DB 实例 default: return GormMysql() // 默认返回 MySQL 数据库 of *gorm.DB 实例 } } // MigrateTable 创建数据库表结构。 func MigrateTable() { db := global.DB err := db.AutoMigrate( system.User{}, system.Client{}, system.Role{}, system.Menu{}, system.SysOperationRecord{}, system.Oss{}, radio.RadioVoice{}, radio.Vip{}, radio.RadioCategory{}, radio.RadioChannel{}, radio.RadioProgram{}, radio.RadioSubscription{}, radio.Order{}, radio.PayNotify{}, radio.RadioComment{}, radio.RadioHistory{}, radio.RadioFavorite{}, radio.RadioLike{}, radio.RadioListenLog{}, ) if err != nil { global.Logger.Error("Migrate table failed,err:", zap.Error(err)) os.Exit(0) } global.Logger.Info("Migrate table success") }