Files
elevator-server/core/gorm/gorm.go
2025-01-07 13:50:42 +08:00

64 lines
1.5 KiB
Go

package gorm
import (
"DT/global"
"DT/model"
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
"log"
"os"
"time"
)
func InitGorm() {
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=%s", global.AppConf.Db.DbUser, global.AppConf.Db.DbPass, global.AppConf.Db.DbHost, global.AppConf.Db.DbPort, global.AppConf.Db.DbName, global.AppConf.Db.TimeZone)
postgresConfig := mysql.Config{
DSN: dsn,
}
newLogger := logger.New(
log.New(os.Stdout, "\r\n", log.LstdFlags),
logger.Config{
SlowThreshold: time.Duration(global.AppConf.Db.SlowThreshold) * time.Millisecond,
LogLevel: logger.LogLevel(global.AppConf.Db.LogLevel),
IgnoreRecordNotFoundError: true,
Colorful: true,
})
MYDB, err := gorm.Open(mysql.New(postgresConfig), &gorm.Config{
Logger: newLogger,
NamingStrategy: schema.NamingStrategy{
SingularTable: true,
TablePrefix: global.AppConf.Db.TablePrefix,
},
})
DB := MYDB
if err != nil {
fmt.Println("[-] 数据库连接失败")
os.Exit(0)
}
sqlDB, _ := DB.DB()
sqlDB.SetMaxIdleConns(global.AppConf.Db.IdleConns)
sqlDB.SetMaxOpenConns(global.AppConf.Db.OpenConns)
sqlDB.SetConnMaxLifetime(time.Hour)
fmt.Println("[+]连接成功!")
global.Db = DB
}
func AutoMigrate(db *gorm.DB) {
err := db.AutoMigrate(
new(model.Device),
new(model.DevData),
new(model.DevUpData),
)
if err != nil {
fmt.Println("[-] 迁移数据表失败:", err.Error())
os.Exit(0)
}
}