×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Go
Posted by: Ming Yun
Added: Oct 22, 2021 3:51 AM
Views: 2194
Tags: gorm
  1. func NewDB(name string) (db *gorm.DB, err error)  {
  2.         dsn := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=",
  3.                 config.GetConfig().GetString(fmt.Sprintf("mysql.%s.user", name)),
  4.                 config.GetConfig().GetString(fmt.Sprintf("mysql.%s.pass", name)),
  5.                 config.GetConfig().GetString(fmt.Sprintf("mysql.%s.host", name)),
  6.                 config.GetConfig().GetInt(fmt.Sprintf("mysql.%s.port", name)),
  7.                 config.GetConfig().GetString(fmt.Sprintf("mysql.%s.db", name)))
  8.         dsn = dsn + url.QueryEscape("Asia/Shanghai")
  9.  
  10.         db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
  11.         if err != nil {
  12.                 panic("failed to connect database" + err.Error())
  13.         }
  14.  
  15.         sqlDB, err := db.DB()
  16.  
  17.         if err != nil {
  18.                 panic("db error: " + err.Error())
  19.         }
  20.  
  21.  
  22.         sqlDB.SetMaxIdleConns(config.GetConfig().GetInt("mysql.maxIdle"))
  23.         sqlDB.SetMaxOpenConns(config.GetConfig().GetInt("mysql.maxActive"))
  24.         sqlDB.SetConnMaxLifetime(time.Hour)
  25.  
  26.         return db, err
  27. }