package common import ( "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" ) // GetDataBaseClient 获取数据库链接 // // 返回值 // - 一个 gorm.DB 的指针 // - 一个清理所有数据库相关数据的函数 func GetDataBaseClient() (*gorm.DB, func() error) { 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) } poolCfg.SetConnMaxIdleTime(3) poolCfg.SetMaxOpenConns(10) return client, poolCfg.Close }