From 3afda0c89c8faa584423b6b1b488cd18d1d42a88 Mon Sep 17 00:00:00 2001 From: John W Higgins Date: Sun, 7 Aug 2022 00:58:53 -0700 Subject: [PATCH] Allow postgresql to use standard environment variables for connection (#3413) --- weed/filer/postgres/postgres_store.go | 16 +++++++++++----- weed/filer/postgres2/postgres2_store.go | 16 +++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/weed/filer/postgres/postgres_store.go b/weed/filer/postgres/postgres_store.go index ed38babcd..cacdbd864 100644 --- a/weed/filer/postgres/postgres_store.go +++ b/weed/filer/postgres/postgres_store.go @@ -3,6 +3,7 @@ package postgres import ( "database/sql" "fmt" + "strconv" "time" _ "github.com/lib/pq" @@ -11,10 +12,6 @@ import ( "github.com/seaweedfs/seaweedfs/weed/util" ) -const ( - CONNECTION_URL_PATTERN = "host=%s port=%d sslmode=%s connect_timeout=30" -) - func init() { filer.Stores = append(filer.Stores, &PostgresStore{}) } @@ -56,7 +53,16 @@ func (store *PostgresStore) initialize(upsertQuery string, enableUpsert bool, us UpsertQueryTemplate: upsertQuery, } - sqlUrl := fmt.Sprintf(CONNECTION_URL_PATTERN, hostname, port, sslmode) + sqlUrl := "connect_timeout=30" + if hostname != "" { + sqlUrl += " host=" + hostname + } + if port != 0 { + sqlUrl += " port=" + strconv.Itoa(port) + } + if sslmode != "" { + sqlUrl += " sslmode=" + sslmode + } if user != "" { sqlUrl += " user=" + user } diff --git a/weed/filer/postgres2/postgres2_store.go b/weed/filer/postgres2/postgres2_store.go index d95b1c424..01e3e9c87 100644 --- a/weed/filer/postgres2/postgres2_store.go +++ b/weed/filer/postgres2/postgres2_store.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "fmt" + "strconv" "time" _ "github.com/lib/pq" @@ -13,10 +14,6 @@ import ( "github.com/seaweedfs/seaweedfs/weed/util" ) -const ( - CONNECTION_URL_PATTERN = "host=%s port=%d sslmode=%s connect_timeout=30" -) - var _ filer.BucketAware = (*PostgresStore2)(nil) func init() { @@ -61,7 +58,16 @@ func (store *PostgresStore2) initialize(createTable, upsertQuery string, enableU UpsertQueryTemplate: upsertQuery, } - sqlUrl := fmt.Sprintf(CONNECTION_URL_PATTERN, hostname, port, sslmode) + sqlUrl := "connect_timeout=30" + if hostname != "" { + sqlUrl += " host=" + hostname + } + if port != 0 { + sqlUrl += " port=" + strconv.Itoa(port) + } + if sslmode != "" { + sqlUrl += " sslmode=" + sslmode + } if user != "" { sqlUrl += " user=" + user }