package globals import ( "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/schema" "log/slog" "platform/pkg/env" ) var DB *gorm.DB func initOrm() { // 连接数据库 dsn := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Shanghai", env.DbHost, env.DbUserName, env.DbPassword, env.DbName, env.DbPort, ) db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{ TranslateError: true, NamingStrategy: schema.NamingStrategy{ SingularTable: true, }, }) if err != nil { slog.Error("gorm 初始化数据库失败:", slog.Any("err", err)) panic(err) } // 连接池 conn, err := db.DB() if err != nil { slog.Error("gorm 初始化数据库失败:", slog.Any("err", err)) panic(err) } conn.SetMaxIdleConns(10) conn.SetMaxOpenConns(100) DB = db } func ExitOrm() error { if DB != nil { conn, err := DB.DB() if err != nil { return err } return conn.Close() } return nil }