From f7f28757f67c8617772e8b43b5b12acc70a034f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20=C5=A0tibran=C3=BD?= Date: Mon, 31 Mar 2025 15:19:32 +0200 Subject: [PATCH] Skip noop migrations, instead of executing SELECT 0. (#103086) * Skip noop migrations, instead of executing SELECT 0. --- pkg/services/sqlstore/migrator/dialect.go | 5 ----- pkg/services/sqlstore/migrator/migrations.go | 2 +- pkg/services/sqlstore/migrator/migrator.go | 9 +++++++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/services/sqlstore/migrator/dialect.go b/pkg/services/sqlstore/migrator/dialect.go index 80a2f88fbf0..c5a0128450d 100644 --- a/pkg/services/sqlstore/migrator/dialect.go +++ b/pkg/services/sqlstore/migrator/dialect.go @@ -74,7 +74,6 @@ type Dialect interface { CleanDB(engine *xorm.Engine) error TruncateDBTables(engine *xorm.Engine) error - NoOpSQL() string // CreateDatabaseFromSnapshot is called when migration log table is not found. // Dialect can recreate all tables from existing snapshot. After successful (nil error) return, // migrator will list migrations from the log, and apply all missing migrations. @@ -353,10 +352,6 @@ func (b *BaseDialect) CreateDatabaseFromSnapshot(ctx context.Context, engine *xo return nil } -func (b *BaseDialect) NoOpSQL() string { - return "SELECT 0;" -} - func (b *BaseDialect) TruncateDBTables(engine *xorm.Engine) error { return nil } diff --git a/pkg/services/sqlstore/migrator/migrations.go b/pkg/services/sqlstore/migrator/migrations.go index 025c2b36d32..24b266e57d2 100644 --- a/pkg/services/sqlstore/migrator/migrations.go +++ b/pkg/services/sqlstore/migrator/migrations.go @@ -53,7 +53,7 @@ func (m *RawSQLMigration) SQL(dialect Dialect) string { } } - return dialect.NoOpSQL() + return "" } func (m *RawSQLMigration) Set(dialect string, sql string) *RawSQLMigration { diff --git a/pkg/services/sqlstore/migrator/migrator.go b/pkg/services/sqlstore/migrator/migrator.go index 6e297af23a0..d8d4683ccfc 100644 --- a/pkg/services/sqlstore/migrator/migrator.go +++ b/pkg/services/sqlstore/migrator/migrator.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "strings" "time" _ "github.com/go-sql-driver/mysql" @@ -392,8 +393,12 @@ func (mg *Migrator) exec(ctx context.Context, m Migration, sess *xorm.Session) e err = codeMigration.Exec(sess, mg) } else { sql := m.SQL(mg.Dialect) - logger.Debug("Executing sql migration", "id", m.Id(), "sql", sql) - _, err = sess.Exec(sql) + if strings.TrimSpace(sql) == "" { + logger.Debug("Skipping empty sql migration", "id", m.Id()) + } else { + logger.Debug("Executing sql migration", "id", m.Id(), "sql", sql) + _, err = sess.Exec(sql) + } } if err != nil {