From 030f6c948f3199f5777f710c7cf3cc8f84625bb4 Mon Sep 17 00:00:00 2001 From: George Robinson Date: Wed, 1 Mar 2023 17:32:29 +0000 Subject: [PATCH] Alerting: Fix migration pauses all alert rules on PostgreSQL (#63951) This commit fixes a serious bug in Grafana 9.4.1 where on upgrade a migration would pause all existing alert rules and change the default value of the column to true. --- pkg/services/sqlstore/migrations/ualert/tables.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkg/services/sqlstore/migrations/ualert/tables.go b/pkg/services/sqlstore/migrations/ualert/tables.go index e329e37cc22..5f4001e74d2 100644 --- a/pkg/services/sqlstore/migrations/ualert/tables.go +++ b/pkg/services/sqlstore/migrations/ualert/tables.go @@ -290,6 +290,11 @@ func addAlertRuleMigrations(mg *migrator.Migrator, defaultIntervalSeconds int64) Default: "0", }, )) + + // This migration fixes a bug where "false" for the default value created a column with default "true" in PostgreSQL databases + mg.AddMigration("fix is_paused column for alert_rule table", migrator.NewRawSQLMigration(""). + Postgres(`ALTER TABLE alert_rule ALTER COLUMN is_paused SET DEFAULT false; +UPDATE alert_rule SET is_paused = false;`)) } func addAlertRuleVersionMigrations(mg *migrator.Migrator) { @@ -354,6 +359,11 @@ func addAlertRuleVersionMigrations(mg *migrator.Migrator) { Default: "0", }, )) + + // This migration fixes a bug where "false" for the default value created a column with default "true" in PostgreSQL databases + mg.AddMigration("fix is_paused column for alert_rule_version table", migrator.NewRawSQLMigration(""). + Postgres(`ALTER TABLE alert_rule_version ALTER COLUMN is_paused SET DEFAULT false; +UPDATE alert_rule_version SET is_paused = false;`)) } func addAlertmanagerConfigMigrations(mg *migrator.Migrator) {