DKube/db/init.go
2022-10-12 10:34:43 +08:00

47 lines
864 B
Go

package db
import (
"dkube/config"
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"github.com/wonderivan/logger"
"time"
)
var (
isInit bool
GORM *gorm.DB
err error
)
func Init() {
if isInit {
return
}
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
config.DbUser,
config.DbPwd,
config.DbHost,
config.DbPort,
config.DbName)
GORM, err = gorm.Open(config.DbType, dsn)
if err != nil {
panic("数据库连接失败," + err.Error())
}
GORM.LogMode(config.LogMode)
GORM.DB().SetMaxIdleConns(config.MaxIdleConns)
GORM.DB().SetMaxOpenConns(config.MaxOpenConns)
GORM.DB().SetConnMaxLifetime(time.Duration(config.MaxLifeTime))
isInit = true
logger.Info("数据库初始化成功!")
}
func Close() error {
fmt.Println("测试db是否关闭")
return GORM.Close()
}