split DB connection string into separate env vars
This commit is contained in:
parent
c6b8aff2a9
commit
069d655d9c
4 changed files with 19 additions and 9 deletions
|
|
@ -62,7 +62,11 @@ Name | Type | Default | Description
|
||||||
PORT | string | localhost:3000 | http address (accepts also port number only for heroku compability)
|
PORT | string | localhost:3000 | http address (accepts also port number only for heroku compability)
|
||||||
LOG_LEVEL | string | debug | log level
|
LOG_LEVEL | string | debug | log level
|
||||||
LOG_TEXTLOGGING | bool | false | defaults to json logging
|
LOG_TEXTLOGGING | bool | false | defaults to json logging
|
||||||
DATABASE_URL | string | postgres://postgres:postgres<br>@localhost:5432/gobase?sslmode=disable | PostgreSQL connection string
|
DB_NETWORK | string | tcp | database 'tcp' or 'unix' connection
|
||||||
|
DB_ADDR | string | localhost:5432 | database tcp address or unix socket
|
||||||
|
DB_USER | string | postgres | database user name
|
||||||
|
DB_PASSWORD | string | postgres | database user password
|
||||||
|
DB_DATABASE | string | gobase | database shema name
|
||||||
AUTH_LOGIN_URL | string | http://localhost:3000/login | client login url as sent in login token email
|
AUTH_LOGIN_URL | string | http://localhost:3000/login | client login url as sent in login token email
|
||||||
AUTH_LOGIN_TOKEN_LENGTH | int | 8 | length of login token
|
AUTH_LOGIN_TOKEN_LENGTH | int | 8 | length of login token
|
||||||
AUTH_LOGIN_TOKEN_EXPIRY | time.Duration | 11m | login token expiry
|
AUTH_LOGIN_TOKEN_EXPIRY | time.Duration | 11m | login token expiry
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@ func init() {
|
||||||
// Cobra supports persistent flags, which, if defined here,
|
// Cobra supports persistent flags, which, if defined here,
|
||||||
// will be global for your application.
|
// will be global for your application.
|
||||||
RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.go-base.yaml)")
|
RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.go-base.yaml)")
|
||||||
|
|
||||||
viper.SetDefault("database_url", "postgres://postgres:postgres@localhost:5432/gobase?sslmode=disable")
|
|
||||||
|
|
||||||
RootCmd.PersistentFlags().Bool("db_debug", false, "log sql to console")
|
RootCmd.PersistentFlags().Bool("db_debug", false, "log sql to console")
|
||||||
viper.BindPFlag("db_debug", RootCmd.PersistentFlags().Lookup("db_debug"))
|
viper.BindPFlag("db_debug", RootCmd.PersistentFlags().Lookup("db_debug"))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,20 @@ import (
|
||||||
|
|
||||||
// DBConn returns a postgres connection pool.
|
// DBConn returns a postgres connection pool.
|
||||||
func DBConn() (*pg.DB, error) {
|
func DBConn() (*pg.DB, error) {
|
||||||
|
viper.SetDefault("db_network", "tcp")
|
||||||
|
viper.SetDefault("db_addr", "localhost:5432")
|
||||||
|
viper.SetDefault("db_user", "postgres")
|
||||||
|
viper.SetDefault("db_password", "postgres")
|
||||||
|
viper.SetDefault("db_database", "gobase")
|
||||||
|
|
||||||
opts, err := pg.ParseURL(viper.GetString("database_url"))
|
db := pg.Connect(&pg.Options{
|
||||||
if err != nil {
|
Network: viper.GetString("db_network"),
|
||||||
return nil, err
|
Addr: viper.GetString("db_addr"),
|
||||||
}
|
User: viper.GetString("db_user"),
|
||||||
|
Password: viper.GetString("db_password"),
|
||||||
|
Database: viper.GetString("db_database"),
|
||||||
|
})
|
||||||
|
|
||||||
db := pg.Connect(opts)
|
|
||||||
if err := checkConn(db); err != nil {
|
if err := checkConn(db); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
2
go.mod
2
go.mod
|
|
@ -42,3 +42,5 @@ require (
|
||||||
gopkg.in/mail.v2 v2.3.1 // indirect
|
gopkg.in/mail.v2 v2.3.1 // indirect
|
||||||
mellium.im/sasl v0.2.1 // indirect
|
mellium.im/sasl v0.2.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
|
go 1.13
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue