diff --git a/env.example b/env.example index 178746f..6eefc55 100644 --- a/env.example +++ b/env.example @@ -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 diff --git a/main.go b/main.go index bc5639f..b89bd61 100644 --- a/main.go +++ b/main.go @@ -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 {