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 <hsluoyz@qq.com>
This commit is contained in:
Tower He 2023-08-31 18:05:38 +08:00 committed by GitHub
parent 669ac7c618
commit d3d4646c56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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
}