package db import ( "ordonnance/conf" "os" "time" "gorm.io/driver/mysql" "gorm.io/gorm" ) var GDB *gorm.DB func init() { GDB = GormMysql() } func GormMysql() *gorm.DB { dsn := conf.GetP1() mysqlConfig := mysql.Config{ DSN: dsn, // DSN data source name DefaultStringSize: 255, // string 类型字段的默认长度 DisableDatetimePrecision: true, // 禁用 datetime 精度,MySQL 5.6 之前的数据库不支持 DontSupportRenameIndex: true, // 重命名索引时采用删除并新建的方式,MySQL 5.7 之前的数据库和 MariaDB 不支持重命名索引 DontSupportRenameColumn: true, // 用 `change` 重命名列,MySQL 8 之前的数据库和 MariaDB 不支持重命名列 SkipInitializeWithVersion: false, // 根据版本自动配置 } if db, err := gorm.Open(mysql.New(mysqlConfig), gormConfig()); err != nil { os.Exit(0) return nil } else { sqlDB, _ := db.DB() sqlDB.SetMaxIdleConns(200) sqlDB.SetMaxOpenConns(100) sqlDB.SetConnMaxLifetime(time.Minute) return db } } func gormConfig() *gorm.Config { var config = &gorm.Config{DisableForeignKeyConstraintWhenMigrating: true} return config }