123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package global
- import (
- _ "dm"
- dm "dmgorm2"
- utils "eta_gn/eta_report/utils"
- "fmt"
- "io"
- "log"
- "os"
- "time"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "gorm.io/gorm/schema"
- _ "github.com/go-sql-driver/mysql"
- )
- func InitDm() {
- dmSqlMap := make(map[string]*gorm.DB)
-
- logWriter := io.MultiWriter(utils.Binlog)
- if utils.RunMode == `dev` {
- logWriter = io.MultiWriter(utils.Binlog, os.Stdout)
- }
- newLogger := logger.New(log.New(logWriter, "\r\n", log.LstdFlags), logger.Config{
- SlowThreshold: 200 * time.Millisecond,
- LogLevel: logger.Info,
- IgnoreRecordNotFoundError: true,
- Colorful: true,
- })
-
- connectDm(utils.MYSQL_URL, "default", newLogger, dmSqlMap, true)
-
- connectDm(utils.MYSQL_URL_ETA, "eta", newLogger, dmSqlMap, false)
-
-
-
- DmSQL = dmSqlMap
- }
- func connectDm(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[string]*gorm.DB, isDefault bool) {
-
- if dsn == `` {
- return
- }
-
-
- db, err := gorm.Open(dm.Open(dsn), &gorm.Config{
- Logger: newLogger,
- NamingStrategy: schema.NamingStrategy{
- SingularTable: true,
- },
- })
- if err != nil {
-
- panic(fmt.Errorf("mysql 启动异常,数据库:%s;Err:%s", aliasName, err))
- }
-
- sqlDB, err := db.DB()
- if err != nil {
-
- panic(fmt.Errorf("mysql 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
- }
- dmSqlMap[aliasName] = db
-
- if isDefault {
- DEFAULT_DmSQL = db
- }
-
- sqlDB.SetMaxIdleConns(50)
-
- sqlDB.SetMaxOpenConns(100)
-
- sqlDB.SetConnMaxLifetime(10 * time.Minute)
- }
|