wx-backend-go/models/init.go

40 lines
946 B
Go

package models
import (
"fmt"
"log"
"time"
"github.com/go-ini/ini"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/driver/mysql"
)
var DB *gorm.DB
func init() {
cfgs, err := ini.Load("conf/db.ini")
if err != nil {
log.Fatalln(err)
}
section := cfgs.Section("mysql")
user := section.Key("user").Value()
password := section.Key("password").Value()
host := section.Key("host").Value()
port , _ := section.Key("port").Int()
database := section.Key("database").Value()
constr := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", user, password, host, port, database)
fmt.Println(constr)
DB, err = gorm.Open(mysql.Open(constr), &gorm.Config{})
sqlDB, _ := DB.DB()
// 5秒内连接没有活跃的话则自动关闭连接
sqlDB.SetConnMaxLifetime(time.Second * 5)
DB.Logger = logger.Default.LogMode(logger.Silent)
if err != nil {
panic(err)
} else {
fmt.Println("数据库初始化成功...")
}
}