package database import ( "Crimson-Gatekeeper/internal/query" "database/sql" "fmt" "gorm.io/driver/postgres" "gorm.io/gorm" ) // GetDataBaseClient 获取数据库链接 // // 返回值 // - 一个 gorm.DB 的指针 // - 一个清理所有数据库相关数据的函数 func GetDataBaseClient() (*gorm.DB, 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("数据库链接建立失败") return nil, ero } return client, nil } func GetPoolCfg(g *gorm.DB) (*sql.DB, error) { pool, err := g.DB() if err != nil { fmt.Println("获取数据库链接池失败") return nil, err } pool.SetConnMaxIdleTime(3) pool.SetMaxOpenConns(10) return pool, nil } func GetQuery(db *gorm.DB) *query.Query { return query.Use(db) }