From fac483c3936bc72b5464cba0ade48a4bd7ae7772 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 1 Mar 2023 13:00:08 -0500 Subject: [PATCH] [v9.4.x] Alerting: Fix migration pauses all alert rules on PostgreSQL (#63968) 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. (cherry picked from commit 030f6c948f3199f5777f710c7cf3cc8f84625bb4) Co-authored-by: George Robinson --- 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 6598f094149..a4c3f03b43d 100644 --- a/pkg/services/sqlstore/migrations/ualert/tables.go +++ b/pkg/services/sqlstore/migrations/ualert/tables.go @@ -286,6 +286,11 @@ func addAlertRuleMigrations(mg *migrator.Migrator, defaultIntervalSeconds int64) Default: "false", }, )) + + // 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) { @@ -350,6 +355,11 @@ func addAlertRuleVersionMigrations(mg *migrator.Migrator) { Default: "false", }, )) + + // 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) {