12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package initialize
- import (
- _ "github.com/go-sql-driver/mysql"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "server/config"
- "server/global"
- "server/initialize/internal"
- )
- // GormMysql 初始化Mysql数据库
- // Author [piexlmax](https://github.com/piexlmax)
- // Author [SliverHorn](https://github.com/SliverHorn)
- func GormMysql() *gorm.DB {
- m := global.GVA_CONFIG.Mysql
- if m.Dbname == "" {
- return nil
- }
- mysqlConfig := mysql.Config{
- DSN: m.Dsn(), // DSN data source name
- DefaultStringSize: 191, // string 类型字段的默认长度
- SkipInitializeWithVersion: false, // 根据版本自动配置
- }
- if db, err := gorm.Open(mysql.New(mysqlConfig), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
- return nil
- } else {
- db.InstanceSet("gorm:table_options", "ENGINE="+m.Engine)
- sqlDB, _ := db.DB()
- sqlDB.SetMaxIdleConns(m.MaxIdleConns)
- sqlDB.SetMaxOpenConns(m.MaxOpenConns)
- return db
- }
- }
- // GormMysqlByConfig 初始化Mysql数据库用过传入配置
- func GormMysqlByConfig(m config.Mysql) *gorm.DB {
- if m.Dbname == "" {
- return nil
- }
- mysqlConfig := mysql.Config{
- DSN: m.Dsn(), // DSN data source name
- DefaultStringSize: 191, // string 类型字段的默认长度
- SkipInitializeWithVersion: false, // 根据版本自动配置
- }
- if db, err := gorm.Open(mysql.New(mysqlConfig), internal.Gorm.Config(m.Prefix, m.Singular)); err != nil {
- panic(err)
- } else {
- db.InstanceSet("gorm:table_options", "ENGINE=InnoDB")
- sqlDB, _ := db.DB()
- sqlDB.SetMaxIdleConns(m.MaxIdleConns)
- sqlDB.SetMaxOpenConns(m.MaxOpenConns)
- return db
- }
- }
|