49 lines
991 B
Go
49 lines
991 B
Go
package database
|
|
|
|
import (
|
|
"github.com/sirupsen/logrus"
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
"main/config"
|
|
"sync"
|
|
)
|
|
|
|
var instance *MysqlConnectionPool
|
|
var once sync.Once
|
|
var db *gorm.DB
|
|
var err error
|
|
|
|
// GetInstance 获取数据库连接池
|
|
func GetInstance() *MysqlConnectionPool {
|
|
once.Do(func() {
|
|
instance = &MysqlConnectionPool{}
|
|
})
|
|
return instance
|
|
}
|
|
|
|
// InitDataPool 数据库初始化连接
|
|
func (m *MysqlConnectionPool) InitDataPool() (isSuccess bool) {
|
|
dbConfig := config.Config.Database
|
|
if dbConfig.Prd {
|
|
db, err = gorm.Open(mysql.Open(dbConfig.Dsn), &gorm.Config{})
|
|
} else {
|
|
db, err = gorm.Open(mysql.Open(dbConfig.Dsn), &gorm.Config{
|
|
Logger: logger.Default.LogMode(logger.Info),
|
|
})
|
|
}
|
|
if err != nil {
|
|
logrus.Errorln("数据库配置失败:", err)
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
// GetMysqlDb 获取数据库连接
|
|
func (m *MysqlConnectionPool) GetMysqlDb() (dbCon *gorm.DB) {
|
|
return db
|
|
}
|
|
|
|
type MysqlConnectionPool struct {
|
|
}
|