package database import ( "gitee.ltd/lxh/logger" "gitee.ltd/lxh/logger/log" "gorm.io/driver/mysql" "gorm.io/driver/postgres" "gorm.io/gorm" "os" "strconv" "wechat-robot/config" ) // Client 客户端 var Client *gorm.DB // Init // @description: 初始化数据库连接 func Init() { var dialector gorm.Dialector switch config.Conf.Database.Type { case "mysql": // MySQL dialector = mysql.Open(config.Conf.Database.GetMysqlDSN()) case "postgresql": // PostgreSQL dialector = postgres.Open(config.Conf.Database.GetPostgreSQLDSN()) default: log.Panic("未配置数据库或数据库类型不支持") } // gorm 配置 gormConfig := gorm.Config{ DisableForeignKeyConstraintWhenMigrating: true, } // 是否开启调试模式 if flag, _ := strconv.ParseBool(os.Getenv("GORM_DEBUG")); flag { gormConfig.Logger = logger.DefaultGormLogger() } // 初始化连接 conn, err := gorm.Open(dialector, &gormConfig) if err != nil { log.Panicf("数据库连接初始化失败: %v", err) } else { log.Debug("数据库连接初始化成功") } Client = conn }