discourse/db/migrate/20251029072625_delete_old_watched_precedence_setting.rb
David Taylor 1d5d9646c6
DEV: Promote old post-deploy migrations to pre-deploy (#38595)
This promotes all post-migrations which existed in `v2026.1` to regular
pre-deploy migrations. We do this after each stable/esr release to
reduce the probability of pre/post deploy timing issues.
2026-03-13 19:09:30 +00:00

36 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class DeleteOldWatchedPrecedenceSetting < ActiveRecord::Migration[8.0]
def up
DB.exec(<<~SQL)
DELETE FROM site_settings WHERE name = 'watched_precedence_over_muted';
SQL
# NOTE: Redoing what the migration is doing in ConvertWatchedPrecedenceOverMutedToDefaultPref,
# to cover any gaps where the new code is not deployed everywhere.
existing_setting_value =
DB.query_single(
"SELECT value FROM site_settings WHERE name = 'default_watched_precedence_over_muted'",
).first
preference_value =
if existing_setting_value.nil?
# This is the default site setting value for default_watched_precedence_over_muted
preference_value = false
else
preference_value = existing_setting_value == "t"
end
DB.exec(<<~SQL, preference_value: preference_value)
UPDATE user_options
SET watched_precedence_over_muted = :preference_value
WHERE watched_precedence_over_muted IS NULL;
SQL
change_column_default :user_options, :watched_precedence_over_muted, from: nil, to: false
change_column_null :user_options, :watched_precedence_over_muted, false
end
def down
raise ActiveRecord::IrreversibleMigration
end
end