feat: add database.

This commit is contained in:
tx7do
2024-11-14 11:35:26 +08:00
parent bef6bbc269
commit 0e4d1aa6cb
5 changed files with 712 additions and 0 deletions

37
database/ent/client.go Normal file
View File

@@ -0,0 +1,37 @@
package ent
import (
_ "github.com/go-sql-driver/mysql"
_ "github.com/jackc/pgx/v4/stdlib"
_ "github.com/lib/pq"
"github.com/go-kratos/kratos/v2/log"
conf "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1"
)
// NewEntClient 创建Ent ORM数据库客户端
func NewEntClient[T ClientInterface](cfg *conf.Bootstrap, l *log.Helper, db T) *ClientWrapper[T] {
drv, err := CreateDriver(
cfg.Data.Database.GetDriver(),
cfg.Data.Database.GetSource(),
cfg.Data.Database.GetEnableTrace(),
cfg.Data.Database.GetEnableMetrics(),
)
if err != nil {
l.Fatalf("failed opening connection to db: %v", err)
return nil
}
wrapperClient := NewEntClientWrapper(db, drv)
wrapperClient.SetConnectionOption(
int(cfg.Data.Database.GetMaxIdleConnections()),
int(cfg.Data.Database.GetMaxOpenConnections()),
cfg.Data.Database.GetConnectionMaxLifetime().AsDuration(),
)
return wrapperClient
}