From ef40200f5426adfabd195306fca9c132880a5431 Mon Sep 17 00:00:00 2001 From: luisserra Date: Sat, 26 Mar 2022 19:17:44 +0000 Subject: [PATCH 1/5] chore(message): fix wrong PGSQL_DBNAME error message --- cmd/database.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/database.go b/cmd/database.go index 6732ede..17d202d 100644 --- a/cmd/database.go +++ b/cmd/database.go @@ -38,7 +38,7 @@ func getPsqlConnInfo() (PsqlConnInfo, error) { if value := viper.GetString("PGSQL_DBNAME"); value != "" { dbName = value } else { - return PsqlConnInfo{}, fmt.Errorf("%s_PGSQL_USER env var is required", envVarsPrefix) + return PsqlConnInfo{}, fmt.Errorf("%s_PGSQL_DBNAME env var is required", envVarsPrefix) } var sslMode string From 3dddacac87f9bec8851f6e1476d6ff404027058b Mon Sep 17 00:00:00 2001 From: luisserra Date: Sat, 26 Mar 2022 19:56:37 +0000 Subject: [PATCH 2/5] feat(schema): add database schema config --- cmd/database.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/cmd/database.go b/cmd/database.go index 17d202d..9643395 100644 --- a/cmd/database.go +++ b/cmd/database.go @@ -9,6 +9,7 @@ import ( "github.com/spf13/viper" "gorm.io/driver/postgres" "gorm.io/gorm" + "gorm.io/gorm/schema" ) type PsqlConnInfo struct { @@ -17,8 +18,11 @@ type PsqlConnInfo struct { DbName string SslMode string Password string + Schema string } +var db *gorm.DB + func getPsqlConnInfo() (PsqlConnInfo, error) { var host string if value := viper.GetString("PGSQL_HOST"); value != "" { @@ -55,12 +59,21 @@ func getPsqlConnInfo() (PsqlConnInfo, error) { return PsqlConnInfo{}, fmt.Errorf("%s_PGSQL_PASSWORD env var is required", envVarsPrefix) } + var schema string + if value := viper.GetString("PGSQL_SCHEMA"); value != "" { + schema = value + } else { + schema = "" + fmt.Printf("No schema set.") + } + return PsqlConnInfo{ Host: host, User: user, DbName: dbName, SslMode: sslMode, Password: password, + Schema: schema, }, nil } @@ -97,7 +110,16 @@ func savePgsql(jsonInfo string) { exitWithError(err) } - db, err := gorm.Open(postgres.Open(PsqlConnInfo.toString()), &gorm.Config{}) + if PsqlConnInfo.Schema == "" { + db, err = gorm.Open(postgres.Open(PsqlConnInfo.toString()), &gorm.Config{}) + } else { + db, err = gorm.Open(postgres.Open(PsqlConnInfo.toString()), &gorm.Config{ + NamingStrategy: schema.NamingStrategy{ + TablePrefix: fmt.Sprintf("%s.", PsqlConnInfo.Schema), // schema name + SingularTable: false, + }}) + } + if err != nil { exitWithError(fmt.Errorf("received error connecting to database: %s", err)) } From 7ffa4a04b28b64d442b12ceed8a4081eacae626b Mon Sep 17 00:00:00 2001 From: luisserra Date: Sun, 27 Mar 2022 23:10:41 +0100 Subject: [PATCH 3/5] chore: change no schema set info log --- cmd/database.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/database.go b/cmd/database.go index 9643395..2424b7c 100644 --- a/cmd/database.go +++ b/cmd/database.go @@ -64,7 +64,7 @@ func getPsqlConnInfo() (PsqlConnInfo, error) { schema = value } else { schema = "" - fmt.Printf("No schema set.") + glog.V(2).Info("No schema set.") } return PsqlConnInfo{ From dcb167c10dc9e8dfa032254c2dbcf0a3c7bbc2ad Mon Sep 17 00:00:00 2001 From: Luis Serra <74016165+luis-serra-ki@users.noreply.github.com> Date: Mon, 28 Mar 2022 21:43:00 +0100 Subject: [PATCH 4/5] Update cmd/database.go Co-authored-by: Huang Huang --- cmd/database.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/cmd/database.go b/cmd/database.go index 2424b7c..3e170f0 100644 --- a/cmd/database.go +++ b/cmd/database.go @@ -20,9 +20,6 @@ type PsqlConnInfo struct { Password string Schema string } - -var db *gorm.DB - func getPsqlConnInfo() (PsqlConnInfo, error) { var host string if value := viper.GetString("PGSQL_HOST"); value != "" { From f76b70af81de6a441962e6b0ccbec84646f91741 Mon Sep 17 00:00:00 2001 From: luisserra Date: Mon, 28 Mar 2022 21:57:06 +0100 Subject: [PATCH 5/5] chore: move db var to savePgsql function --- cmd/database.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmd/database.go b/cmd/database.go index 3e170f0..3aaa3f6 100644 --- a/cmd/database.go +++ b/cmd/database.go @@ -20,6 +20,7 @@ type PsqlConnInfo struct { Password string Schema string } + func getPsqlConnInfo() (PsqlConnInfo, error) { var host string if value := viper.GetString("PGSQL_HOST"); value != "" { @@ -107,6 +108,8 @@ func savePgsql(jsonInfo string) { exitWithError(err) } + var db *gorm.DB + if PsqlConnInfo.Schema == "" { db, err = gorm.Open(postgres.Open(PsqlConnInfo.toString()), &gorm.Config{}) } else {