From 6029859f263a25875755432129998206b5dca8a4 Mon Sep 17 00:00:00 2001 From: Stephen Stanton Date: Thu, 6 Mar 2025 14:09:41 -0500 Subject: [PATCH 1/2] use the database name in the config --- database/mysql/mysql.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/database/mysql/mysql.go b/database/mysql/mysql.go index c7e7ef617..538731b07 100644 --- a/database/mysql/mysql.go +++ b/database/mysql/mysql.go @@ -361,7 +361,7 @@ func (m *Mysql) SetVersion(version int, dirty bool) error { return &database.Error{OrigErr: err, Err: "transaction start failed"} } - query := "DELETE FROM `" + m.config.MigrationsTable + "` LIMIT 1" + query := fmt.Sprintf("DELETE FROM `%s`.`%s` LIMIT 1", m.config.DatabaseName, m.config.MigrationsTable) if _, err := tx.ExecContext(context.Background(), query); err != nil { if errRollback := tx.Rollback(); errRollback != nil { err = multierror.Append(err, errRollback) @@ -373,7 +373,7 @@ func (m *Mysql) SetVersion(version int, dirty bool) error { // empty schema version for failed down migration on the first migration // See: https://github.com/golang-migrate/migrate/issues/330 if version >= 0 || (version == database.NilVersion && dirty) { - query := "INSERT INTO `" + m.config.MigrationsTable + "` (version, dirty) VALUES (?, ?)" + query := fmt.Sprintf("INSERT INTO `%s`.`%s` (version, dirty) VALUES (?, ?)", m.config.DatabaseName, m.config.MigrationsTable) if _, err := tx.ExecContext(context.Background(), query, version, dirty); err != nil { if errRollback := tx.Rollback(); errRollback != nil { err = multierror.Append(err, errRollback) @@ -390,7 +390,7 @@ func (m *Mysql) SetVersion(version int, dirty bool) error { } func (m *Mysql) Version() (version int, dirty bool, err error) { - query := "SELECT version, dirty FROM `" + m.config.MigrationsTable + "` LIMIT 1" + query := fmt.Sprintf("SELECT version, dirty FROM `%s`.`%s` LIMIT 1", m.config.DatabaseName, m.config.MigrationsTable) err = m.conn.QueryRowContext(context.Background(), query).Scan(&version, &dirty) switch { case err == sql.ErrNoRows: @@ -411,7 +411,7 @@ func (m *Mysql) Version() (version int, dirty bool, err error) { func (m *Mysql) Drop() (err error) { // select all tables - query := `SHOW TABLES LIKE '%'` + query := fmt.Sprintf("SHOW TABLES FROM `%s` LIKE '%'", m.config.DatabaseName) tables, err := m.conn.QueryContext(context.Background(), query) if err != nil { return &database.Error{OrigErr: err, Query: []byte(query)} @@ -451,7 +451,7 @@ func (m *Mysql) Drop() (err error) { // delete one by one ... for _, t := range tableNames { - query = "DROP TABLE IF EXISTS `" + t + "`" + query = fmt.Sprintf("DROP TABLE IF EXISTS `%s`.`%s`", m.config.DatabaseName, t) if _, err := m.conn.ExecContext(context.Background(), query); err != nil { return &database.Error{OrigErr: err, Query: []byte(query)} } @@ -481,7 +481,7 @@ func (m *Mysql) ensureVersionTable() (err error) { // check if migration table exists var result string - query := `SHOW TABLES LIKE '` + m.config.MigrationsTable + `'` + query := fmt.Sprintf("SHOW TABLES FROM `%s` LIKE '%s'", m.config.DatabaseName, m.config.MigrationsTable) if err := m.conn.QueryRowContext(context.Background(), query).Scan(&result); err != nil { if err != sql.ErrNoRows { return &database.Error{OrigErr: err, Query: []byte(query)} @@ -491,7 +491,7 @@ func (m *Mysql) ensureVersionTable() (err error) { } // if not, create the empty migration table - query = "CREATE TABLE `" + m.config.MigrationsTable + "` (version bigint not null primary key, dirty boolean not null)" + query = fmt.Sprintf("CREATE TABLE `%s`.`%s` (version bigint not null primary key, dirty boolean not null)", m.config.DatabaseName, m.config.MigrationsTable) if _, err := m.conn.ExecContext(context.Background(), query); err != nil { return &database.Error{OrigErr: err, Query: []byte(query)} } From 6ab1d6b20ba56e4975322ffa13f864bf06f2f7fb Mon Sep 17 00:00:00 2001 From: Stephen Stanton Date: Thu, 6 Mar 2025 14:19:06 -0500 Subject: [PATCH 2/2] fix problem --- database/mysql/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/mysql/mysql.go b/database/mysql/mysql.go index 538731b07..1fad8400c 100644 --- a/database/mysql/mysql.go +++ b/database/mysql/mysql.go @@ -411,7 +411,7 @@ func (m *Mysql) Version() (version int, dirty bool, err error) { func (m *Mysql) Drop() (err error) { // select all tables - query := fmt.Sprintf("SHOW TABLES FROM `%s` LIKE '%'", m.config.DatabaseName) + query := fmt.Sprintf("SHOW TABLES FROM `%s`", m.config.DatabaseName) tables, err := m.conn.QueryContext(context.Background(), query) if err != nil { return &database.Error{OrigErr: err, Query: []byte(query)}