From d3d4646c56f02477789a2c16d33f4a0f5f69ff0f Mon Sep 17 00:00:00 2001 From: Tower He Date: Thu, 31 Aug 2023 18:05:38 +0800 Subject: [PATCH] feat: fix can not create db when using pg with a dbname in DSN (#2280) * fix: can not create db when using pg with a dbname in DSN * Update ormer.go --------- Co-authored-by: hsluoyz --- object/ormer.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/object/ormer.go b/object/ormer.go index 9befaaa0..08667330 100644 --- a/object/ormer.go +++ b/object/ormer.go @@ -18,6 +18,7 @@ import ( "database/sql" "flag" "fmt" + "regexp" "runtime" "strings" @@ -122,9 +123,14 @@ func NewAdapter(driverName string, dataSourceName string, dbName string) *Ormer return a } +func refineDataSourceNameForPostgres(dataSourceName string) string { + reg := regexp.MustCompile(`dbname=[^ ]+\s*`) + return reg.ReplaceAllString(dataSourceName, "") +} + func createDatabaseForPostgres(driverName string, dataSourceName string, dbName string) error { if driverName == "postgres" { - db, err := sql.Open(driverName, dataSourceName) + db, err := sql.Open(driverName, refineDataSourceNameForPostgres(dataSourceName)) if err != nil { return err }