Add Postgres and MySQL connection strings (#429)

* Add ConnectionURI to Postgres

* Add ConnectionURI to MySQL

* Update Postgres sample db name
This commit is contained in:
Kalissaac
2022-08-14 22:48:29 -07:00
committed by GitHub
parent d27ddd4739
commit c38c925975
5 changed files with 64 additions and 18 deletions

View File

@@ -46,26 +46,31 @@ func New(config ...Config) *Storage {
cfg := configDefault(config...)
// Create data source name
var dsn string = "postgresql://"
if cfg.Username != "" {
dsn += url.QueryEscape(cfg.Username)
}
if cfg.Password != "" {
dsn += ":" + cfg.Password
}
if cfg.Username != "" || cfg.Password != "" {
dsn += "@"
}
// unix socket host path
if strings.HasPrefix(cfg.Host, "/") {
dsn += fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)
var dsn string
if cfg.ConnectionURI != "" {
dsn = cfg.ConnectionURI
} else {
dsn += fmt.Sprintf("%s:%d", url.QueryEscape(cfg.Host), cfg.Port)
dsn = "postgresql://"
if cfg.Username != "" {
dsn += url.QueryEscape(cfg.Username)
}
if cfg.Password != "" {
dsn += ":" + cfg.Password
}
if cfg.Username != "" || cfg.Password != "" {
dsn += "@"
}
// unix socket host path
if strings.HasPrefix(cfg.Host, "/") {
dsn += fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)
} else {
dsn += fmt.Sprintf("%s:%d", url.QueryEscape(cfg.Host), cfg.Port)
}
dsn += fmt.Sprintf("/%s?connect_timeout=%d&sslmode=%s",
url.QueryEscape(cfg.Database),
int64(cfg.timeout.Seconds()),
cfg.SslMode)
}
dsn += fmt.Sprintf("/%s?connect_timeout=%d&sslmode=%s",
url.QueryEscape(cfg.Database),
int64(cfg.timeout.Seconds()),
cfg.SslMode)
// Create db
db, err := sql.Open("postgres", dsn)