From 2c1c816941033c8353f708bd7f03f276f39f77fc Mon Sep 17 00:00:00 2001 From: He Weiwei Date: Wed, 28 Aug 2019 16:59:22 +0800 Subject: [PATCH] fix(database): generate db url by url.URL for schema upgrade (#8852) Closes #7948 Signed-off-by: He Weiwei --- src/common/dao/pgsql.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/common/dao/pgsql.go b/src/common/dao/pgsql.go index bf98c6b08..d6120b975 100644 --- a/src/common/dao/pgsql.go +++ b/src/common/dao/pgsql.go @@ -16,6 +16,7 @@ package dao import ( "fmt" + "net/url" "os" "github.com/astaxie/beego/orm" @@ -91,14 +92,21 @@ func (p *pgsql) Register(alias ...string) error { // UpgradeSchema calls migrate tool to upgrade schema to the latest based on the SQL scripts. func (p *pgsql) UpgradeSchema() error { - dbURL := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s", p.usr, p.pwd, p.host, p.port, p.database, p.sslmode) + dbURL := url.URL{ + Scheme: "postgres", + User: url.UserPassword(p.usr, p.pwd), + Host: fmt.Sprintf("%s:%s", p.host, p.port), + Path: p.database, + RawQuery: fmt.Sprintf("sslmode=%s", p.sslmode), + } + // For UT path := os.Getenv("POSTGRES_MIGRATION_SCRIPTS_PATH") if len(path) == 0 { path = defaultMigrationPath } srcURL := fmt.Sprintf("file://%s", path) - m, err := migrate.New(srcURL, dbURL) + m, err := migrate.New(srcURL, dbURL.String()) if err != nil { return err }