Allow DSN env variable for database connection (#52)

This commit is contained in:
Vivek Hiwarkar
2022-08-08 16:42:14 +05:30
committed by GitHub
parent 621a71538d
commit 06ec05ce42
2 changed files with 9 additions and 2 deletions

View File

@@ -5,6 +5,7 @@ DEBUG_PORT=12000
API_ADDR=localhost:11000
# db
DSN='postgres://admindbuser:admindbpassword@localhost:5432/admindb?sslmode=disable' #overrides DB_{ADDR,NAME,USER,PASSWORD,PORT}
DB_ADDR=localhost:5432
DB_NAME=admindb
DB_USER=admindbuser

10
main.go
View File

@@ -58,6 +58,7 @@ const (
devEnv = "DEV"
// db
dbDSNEnv = "DSN"
dbAddrEnv = "DB_ADDR"
dbNameEnv = "DB_NAME"
dbUserEnv = "DB_USER"
@@ -99,6 +100,7 @@ var (
_log = log.GetLogger()
// db
dbDSN string
dbAddr string
dbName string
dbUser string
@@ -213,6 +215,7 @@ func setup() {
viper.BindEnv(apiAddrEnv)
viper.BindEnv(devEnv)
viper.BindEnv(dbDSNEnv)
viper.BindEnv(dbAddrEnv)
viper.BindEnv(dbNameEnv)
viper.BindEnv(dbUserEnv)
@@ -243,6 +246,7 @@ func setup() {
apiAddr = viper.GetString(apiAddrEnv)
dev = viper.GetBool(devEnv)
dbDSN := viper.GetString(dbDSNEnv)
dbAddr = viper.GetString(dbAddrEnv)
dbName = viper.GetString(dbNameEnv)
dbUser = viper.GetString(dbUserEnv)
@@ -280,8 +284,10 @@ func setup() {
akc = kclient.NewAPIClient(kratosAdminConfig)
// db setup
dsn := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", dbUser, dbPassword, dbAddr, dbName)
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(dsn)))
if dbDSN == "" {
dbDSN = fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", dbUser, dbPassword, dbAddr, dbName)
}
sqldb := sql.OpenDB(pgdriver.NewConnector(pgdriver.WithDSN(dbDSN)))
db = bun.NewDB(sqldb, pgdialect.New())
if dev {