diff --git a/postgres/go.mod b/postgres/go.mod index c8a08d46..e1f440bf 100644 --- a/postgres/go.mod +++ b/postgres/go.mod @@ -4,5 +4,5 @@ go 1.14 require ( github.com/gofiber/utils v0.1.2 - github.com/lib/pq v1.10.4 + github.com/lib/pq v1.10.5 ) diff --git a/postgres/go.sum b/postgres/go.sum index 8687211f..5af2da43 100644 --- a/postgres/go.sum +++ b/postgres/go.sum @@ -2,3 +2,5 @@ github.com/gofiber/utils v0.1.2 h1:1SH2YEz4RlNS0tJlMJ0bGwO0JkqPqvq6TbHK9tXZKtk= github.com/gofiber/utils v0.1.2/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.5 h1:J+gdV2cUmX7ZqL2B0lFcW0m+egaHC2V3lpO8nWxyYiQ= +github.com/lib/pq v1.10.5/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= diff --git a/postgres/postgres.go b/postgres/postgres.go index ac0dc6b9..37f96117 100644 --- a/postgres/postgres.go +++ b/postgres/postgres.go @@ -56,12 +56,16 @@ func New(config ...Config) *Storage { if cfg.Username != "" || cfg.Password != "" { dsn += "@" } - dsn += fmt.Sprintf("%s:%d", url.QueryEscape(cfg.Host), cfg.Port) + // 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, - ) + cfg.SslMode) // Create db db, err := sql.Open("postgres", dsn)