增加定时任务 处理异常
This commit is contained in:
84
core/gorm/gorm.go
Normal file
84
core/gorm/gorm.go
Normal file
@@ -0,0 +1,84 @@
|
||||
package gorm
|
||||
|
||||
import (
|
||||
"energy-management-system/global"
|
||||
"energy-management-system/model/init-db-data"
|
||||
peak_valley "energy-management-system/model/peak-valley"
|
||||
"fmt"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
"gorm.io/gorm/schema"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
func InitGorm() {
|
||||
dsn := fmt.Sprintf("host=%s port=%d dbname=%s user=%s password=%s sslmode=disable TimeZone=%s",
|
||||
global.AppConf.Db.DbHost, global.AppConf.Db.DbPort, global.AppConf.Db.DbName, global.AppConf.Db.DbUser, global.AppConf.Db.DbPass, global.AppConf.Db.TimeZone)
|
||||
postgresConfig := postgres.Config{
|
||||
DSN: dsn, // DSN data source name
|
||||
PreferSimpleProtocol: true, // 禁用隐式 prepared statement
|
||||
}
|
||||
|
||||
// 使用标准日志库的New方法创建日志输出
|
||||
newLogger := logger.New(
|
||||
log.New(os.Stdout, "\r\n", log.LstdFlags),
|
||||
logger.Config{
|
||||
SlowThreshold: time.Duration(global.AppConf.Db.SlowThreshold) * time.Millisecond, // 慢SQL阈值
|
||||
LogLevel: logger.LogLevel(global.AppConf.Db.LogLevel), // 日志级别
|
||||
IgnoreRecordNotFoundError: true,
|
||||
Colorful: true,
|
||||
})
|
||||
|
||||
PGDB, err := gorm.Open(postgres.New(postgresConfig), &gorm.Config{
|
||||
//Logger: newLogger,
|
||||
//Logger: logger.Default.LogMode(logger.Info),
|
||||
Logger: newLogger,
|
||||
NamingStrategy: schema.NamingStrategy{
|
||||
SingularTable: true, // 使用单数表名,在启用此选项的情况下,“user”的表将是“user”
|
||||
TablePrefix: global.AppConf.Db.TablePrefix, // 表前缀
|
||||
},
|
||||
})
|
||||
|
||||
DB := PGDB
|
||||
|
||||
if err != nil {
|
||||
fmt.Println("数据库链接失败")
|
||||
os.Exit(0)
|
||||
}
|
||||
//AutoMigrate(DB)
|
||||
sqlDB, _ := DB.DB()
|
||||
sqlDB.SetMaxIdleConns(global.AppConf.Db.IdleConns)
|
||||
sqlDB.SetMaxOpenConns(global.AppConf.Db.OpenConns)
|
||||
// 设置数据库连接池中连接的最大生命周期
|
||||
sqlDB.SetConnMaxLifetime(time.Hour)
|
||||
fmt.Println("[+]PG连接成功!")
|
||||
global.Db = DB
|
||||
}
|
||||
|
||||
// AutoMigrate 自动迁移
|
||||
func AutoMigrate(db *gorm.DB) {
|
||||
err := db.AutoMigrate(
|
||||
new(peak_valley.PeakValleyTimeBlock),
|
||||
new(peak_valley.PeakValleyTimeBlockPrice),
|
||||
|
||||
new(peak_valley.PeakValleyQuarter),
|
||||
new(peak_valley.PeakValleyRule),
|
||||
//new(model.Role),
|
||||
//new(model.UserRole),
|
||||
//new(model.Api),
|
||||
//new(model.Menu),
|
||||
//new(model.RoleApi),
|
||||
//new(model.RoleMenu),
|
||||
)
|
||||
if err != nil {
|
||||
fmt.Println("[-] 迁移数据表失败:", err.Error())
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
func AutoInitDbData() {
|
||||
init_db_data.InitDbData()
|
||||
}
|
||||
Reference in New Issue
Block a user