u
This commit is contained in:
1 parent
ac0843c041
commit
a917be08d1
65 files changed
+8043
No files matched your search
@@ -0,0 +1,56 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"cn/oneao/base-go/config"
|
||||
"cn/oneao/base-go/ent"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"entgo.io/ent/dialect"
|
||||
entsql "entgo.io/ent/dialect/sql"
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
var Client *ent.Client
|
||||
|
||||
// InitDB 初始化 PostgreSQL 数据库连接(使用 sql.DB 配置连接池)
|
||||
func InitDB() {
|
||||
// 处理 SSLMode
|
||||
sslmode := "disable"
|
||||
if config.Db.SllMode {
|
||||
sslmode = "require"
|
||||
}
|
||||
|
||||
// 构建 PostgreSQL DSN
|
||||
dsn := fmt.Sprintf(
|
||||
"user=%s password=%s dbname=%s host=%s port=%d sslmode=%s TimeZone=%s",
|
||||
config.Db.User,
|
||||
config.Db.Password,
|
||||
config.Db.Dbname,
|
||||
config.Db.Host,
|
||||
config.Db.Port,
|
||||
sslmode,
|
||||
config.Db.TimeZone,
|
||||
)
|
||||
|
||||
// 使用 sql.Open 创建原生 *sql.DB 对象
|
||||
db, err := sql.Open("postgres", dsn)
|
||||
if err != nil {
|
||||
log.Fatalf("❌ 数据库连接失败: %v", err)
|
||||
}
|
||||
|
||||
// 配置连接池
|
||||
db.SetMaxOpenConns(config.Db.MaxOpenConns)
|
||||
db.SetMaxIdleConns(config.Db.MaxIdleConns)
|
||||
db.SetConnMaxLifetime(config.Db.ConnMaxLifetime)
|
||||
|
||||
// 使用 sql.DB 创建 ent.Driver
|
||||
drv := entsql.OpenDB(dialect.Postgres, db)
|
||||
|
||||
// 创建 ent.Client
|
||||
client := ent.NewClient(ent.Driver(drv))
|
||||
|
||||
Client = client
|
||||
log.Println("✅ 数据库连接完成")
|
||||
}
|
||||
Reference in new issue
Block a user