Mercurial > gemma
view auth/opendb.go @ 28:714787accd26
Fetch database connection string parts from configuration.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 25 Jun 2018 15:34:32 +0200 |
parents | 96a429c5f227 |
children | a9d3990b083b |
line wrap: on
line source
package auth import ( "database/sql" "errors" "fmt" "strings" "gemma.intevation.de/gemma/config" _ "github.com/jackc/pgx/stdlib" ) var ErrNotImplementedYet = errors.New("Not implemented, yet!") const driver = "pgx" // dbQuote quotes strings to be able to contain whitespace // and backslashes in database DSN strings. var dbQuote = strings.NewReplacer(`\`, `\\`, `'`, `\'`).Replace // dbDSN creates a data source name suitable for sql.Open on // PostgreSQL databases. func dbDSN(host string, port uint, dbname, user, password string, sslmode string) string { return fmt.Sprintf("host='%s' port=%d dbname='%s' user='%s' password='%s' sslmode='%s'", dbQuote(host), port, dbQuote(dbname), dbQuote(user), dbQuote(password), sslmode) } func opendb(user, password string) (*sql.DB, error) { return sql.Open(driver, dbDSN( config.Config.DBHost, config.Config.DBPort, config.Config.DBName, user, password, config.Config.DBSSLMode)) }