package database import ( "Crimson-Gatekeeper/internal/query" "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" ) // GetDataBaseClient 获取数据库链接 // // 返回值 // - 一个 gorm.DB 的指针 // - 一个清理所有数据库相关数据的函数 func GetDataBaseClient() *gorm.DB { dsn := "host=localhost " + "user=gatekeeper " + "dbname=crimson " + "sslmode=disable " + "port=5432 " + "password=crimson " + "connect_timeout=20 " client, ero := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if ero != nil { fmt.Println("数据库链接建立失败") panic(ero) } poolCfg, ero := client.DB() if ero != nil { fmt.Println("获取数据库链接池失败") panic(ero) } //cleanPoolCfg := func() { // ero := poolCfg.Close() // if ero != nil { // fmt.Println("清理过程中出现错误") // panic(ero) // } //} poolCfg.SetConnMaxIdleTime(3) poolCfg.SetMaxOpenConns(10) return client } func GetQuery(db *gorm.DB) *query.Query { return query.Use(db) }