From 96a2ae9251bd7b8ab9300a8aa45d997a5c2196ca Mon Sep 17 00:00:00 2001 From: dpurbosakti Date: Thu, 11 Sep 2025 12:19:06 +0700 Subject: [PATCH] initiate multi db config --- cmd/main-api/config.yml-example | 18 +++++++--- go.mod | 2 ++ internal/infra/ss-db/ss-db.go | 33 ++----------------- internal/infra/ss-db/tycovar.go | 10 +----- .../interface/main-handler/main-handler.go | 2 +- 5 files changed, 20 insertions(+), 45 deletions(-) diff --git a/cmd/main-api/config.yml-example b/cmd/main-api/config.yml-example index aaf986f0..f131a725 100644 --- a/cmd/main-api/config.yml-example +++ b/cmd/main-api/config.yml-example @@ -15,11 +15,19 @@ dbCfg: maxIdleConns: 5 maxIdleTime: 100 -ssDbCfg: - dsn: - maxOpenConns: 5 - maxIdleConns: 5 - maxIdleTime: 100 +multiDbCfg: + - dbs : + name: + dsn: + maxOpenConns: + maxIdleConns: + maxIdleTime: + - bpjs + name: bpjs + dsn: + maxOpenConns: + maxIdleConns: + maxIdleTime: loggerCfg: hideTime: diff --git a/go.mod b/go.mod index da8ef314..f85c51cf 100644 --- a/go.mod +++ b/go.mod @@ -49,3 +49,5 @@ require ( gorm.io/driver/sqlite v1.5.7 // indirect gorm.io/driver/sqlserver v1.5.4 // indirect ) + +replace github.com/karincake/apem => D:\Kuli\Sabbi\external\apem \ No newline at end of file diff --git a/internal/infra/ss-db/ss-db.go b/internal/infra/ss-db/ss-db.go index 3c239540..ac9c13ee 100644 --- a/internal/infra/ss-db/ss-db.go +++ b/internal/infra/ss-db/ss-db.go @@ -1,36 +1,9 @@ package ssdb import ( - "log" - - a "github.com/karincake/apem" - lo "github.com/karincake/apem/loggero" - "gorm.io/driver/postgres" - "gorm.io/gorm" - "gorm.io/gorm/schema" + dg "github.com/karincake/apem/db-gorm-pg" ) -func Init() { - SetConfig() - NewInstance() -} - -func SetConfig() { - a.ParseSingleCfg(&Cfg) -} - -func NewInstance() { - // create database connection - db, err := gorm.Open(postgres.Open(Cfg.Dsn), &gorm.Config{ - NamingStrategy: schema.NamingStrategy{ - SingularTable: true, - NoLowerCase: true, - }, - }) - if err != nil { - log.Fatal(err) - } - - SSDb = db - lo.I.Println("Instantiation for satu-sehat database-connetion using db-gorm-pg, status: DONE!!") +func SetInstance() { + I = dg.IS["satu-sehat"] } diff --git a/internal/infra/ss-db/tycovar.go b/internal/infra/ss-db/tycovar.go index ff084508..55fc90fd 100644 --- a/internal/infra/ss-db/tycovar.go +++ b/internal/infra/ss-db/tycovar.go @@ -2,12 +2,4 @@ package ssdb import "gorm.io/gorm" -type SsDbCfg struct { - Dsn string - MaxOpenConns int `yaml:"maxOpenConns"` - MaxIdleConns int `yaml:"maxIdleConns"` - MaxIdleTime int `yaml:"maxIdleTime"` -} - -var Cfg SsDbCfg = SsDbCfg{} -var SSDb *gorm.DB +var I *gorm.DB diff --git a/internal/interface/main-handler/main-handler.go b/internal/interface/main-handler/main-handler.go index 476dacc7..5ef7d2c4 100644 --- a/internal/interface/main-handler/main-handler.go +++ b/internal/interface/main-handler/main-handler.go @@ -80,7 +80,7 @@ func SetRoutes() http.Handler { ///// a.RegisterExtCall(gs.Adjust) a.RegisterExtCall(zlc.Adjust) - a.RegisterExtCall(ssdb.Init) + a.RegisterExtCall(ssdb.SetInstance) a.RegisterExtCall(lh.Populate) a.RegisterExtCall(validation.RegisterValidation)