From 57b2ba71157efd583271722d5e84e85b5d10c5ac Mon Sep 17 00:00:00 2001 From: Dale Hui Date: Sun, 13 Oct 2019 23:24:10 -0700 Subject: [PATCH] Actually use schema and db names specified in postgres db config Addresses: https://github.com/golang-migrate/migrate/issues/262 --- database/postgres/postgres.go | 38 +++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/database/postgres/postgres.go b/database/postgres/postgres.go index 7c334921a..9cd5cb170 100644 --- a/database/postgres/postgres.go +++ b/database/postgres/postgres.go @@ -58,30 +58,34 @@ func WithInstance(instance *sql.DB, config *Config) (database.Driver, error) { return nil, err } - query := `SELECT CURRENT_DATABASE()` - var databaseName string - if err := instance.QueryRow(query).Scan(&databaseName); err != nil { - return nil, &database.Error{OrigErr: err, Query: []byte(query)} - } + if config.DatabaseName == "" { + query := `SELECT CURRENT_DATABASE()` + var databaseName string + if err := instance.QueryRow(query).Scan(&databaseName); err != nil { + return nil, &database.Error{OrigErr: err, Query: []byte(query)} + } + + if len(databaseName) == 0 { + return nil, ErrNoDatabaseName + } - if len(databaseName) == 0 { - return nil, ErrNoDatabaseName + config.DatabaseName = databaseName } - config.DatabaseName = databaseName + if config.SchemaName == "" { + query := `SELECT CURRENT_SCHEMA()` + var schemaName string + if err := instance.QueryRow(query).Scan(&schemaName); err != nil { + return nil, &database.Error{OrigErr: err, Query: []byte(query)} + } - query = `SELECT CURRENT_SCHEMA()` - var schemaName string - if err := instance.QueryRow(query).Scan(&schemaName); err != nil { - return nil, &database.Error{OrigErr: err, Query: []byte(query)} - } + if len(schemaName) == 0 { + return nil, ErrNoSchema + } - if len(schemaName) == 0 { - return nil, ErrNoSchema + config.SchemaName = schemaName } - config.SchemaName = schemaName - if len(config.MigrationsTable) == 0 { config.MigrationsTable = DefaultMigrationsTable }