75f3dd141c
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CI and Release / lint-frontend (push) Has been cancelled
CI and Release / dockerfile-scan (push) Has been cancelled
CI and Release / test-frontend (push) Has been cancelled
CI and Release / lint-verification-agent (push) Has been cancelled
CI and Release / test-verification-agent (push) Has been cancelled
CI and Release / e2e-verification-agent (push) Has been cancelled
CI and Release / test-backend (push) Has been cancelled
CI and Release / build-dev-image (push) Has been cancelled
CI and Release / push-dev-image (push) Has been cancelled
CI and Release / build-image (push) Has been cancelled
CI and Release / build-verification-image (push) Has been cancelled
CI and Release / determine-version (push) Has been cancelled
CI and Release / push-image (push) Has been cancelled
CI and Release / push-verification-image (12) (push) Has been cancelled
CI and Release / lint-backend (push) Has been cancelled
CI and Release / push-verification-image (17) (push) Has been cancelled
CI and Release / push-verification-image (18) (push) Has been cancelled
CI and Release / release (push) Has been cancelled
CI and Release / publish-helm-chart (push) Has been cancelled
CI and Release / push-verification-image (13) (push) Has been cancelled
CI and Release / push-verification-image (14) (push) Has been cancelled
CI and Release / push-verification-image (15) (push) Has been cancelled
CI and Release / push-verification-image (16) (push) Has been cancelled
56 lines
934 B
Go
56 lines
934 B
Go
package storage
|
|
|
|
import (
|
|
"os"
|
|
"sync"
|
|
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
gormLogger "gorm.io/gorm/logger"
|
|
|
|
"databasus-backend/internal/config"
|
|
"databasus-backend/internal/util/logger"
|
|
)
|
|
|
|
var log = logger.GetLogger()
|
|
|
|
var db *gorm.DB
|
|
|
|
var initDb = sync.OnceFunc(loadDbs)
|
|
|
|
func GetDb() *gorm.DB {
|
|
initDb()
|
|
return db
|
|
}
|
|
|
|
func loadDbs() {
|
|
LoadMainDb()
|
|
}
|
|
|
|
func LoadMainDb() {
|
|
dbDsn := config.GetEnv().DatabaseDsn
|
|
|
|
log.Info("Connection to database...")
|
|
|
|
database, err := gorm.Open(postgres.Open(dbDsn), &gorm.Config{
|
|
Logger: gormLogger.Default.LogMode(gormLogger.Silent),
|
|
})
|
|
if err != nil {
|
|
log.Error("error on connecting to database", "error", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
sqlDB, err := database.DB()
|
|
if err != nil {
|
|
log.Error("error getting underlying sql.DB", "error", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
sqlDB.SetMaxOpenConns(10)
|
|
sqlDB.SetMaxIdleConns(10)
|
|
|
|
db = database
|
|
|
|
log.Info("Main database connected successfully!")
|
|
}
|