From 9ce8f3fd5355f7ca0e555ffa643af7438d8f5c7c Mon Sep 17 00:00:00 2001 From: Natalie Tay Date: Wed, 7 Aug 2024 12:55:55 +0800 Subject: [PATCH] DEV: Check that setting does not exist before migrate (#203) --- ...me_incorrect_topic_voting_site_settings.rb | 62 ++++++++++++++++--- 1 file changed, 53 insertions(+), 9 deletions(-) diff --git a/db/migrate/20240807020209_rename_incorrect_topic_voting_site_settings.rb b/db/migrate/20240807020209_rename_incorrect_topic_voting_site_settings.rb index 72529b9..08d7eb7 100644 --- a/db/migrate/20240807020209_rename_incorrect_topic_voting_site_settings.rb +++ b/db/migrate/20240807020209_rename_incorrect_topic_voting_site_settings.rb @@ -2,15 +2,59 @@ class RenameIncorrectTopicVotingSiteSettings < ActiveRecord::Migration[7.0] def up - execute "UPDATE site_settings SET name = 'topic_voting_alert_votes_left' WHERE name = 'voting_alert_votes_left'" - execute "UPDATE site_settings SET name = 'topic_voting_enabled' WHERE name = 'voting_enabled'" - execute "UPDATE site_settings SET name = 'topic_voting_show_who_voted' WHERE name = 'voting_show_who_voted'" - execute "UPDATE site_settings SET name = 'topic_voting_show_votes_on_profile' WHERE name = 'voting_show_votes_on_profile'" - execute "UPDATE site_settings SET name = 'topic_voting_tl0_vote_limit' WHERE name = 'voting_tl0_vote_limit'" - execute "UPDATE site_settings SET name = 'topic_voting_tl1_vote_limit' WHERE name = 'voting_tl1_vote_limit'" - execute "UPDATE site_settings SET name = 'topic_voting_tl2_vote_limit' WHERE name = 'voting_tl2_vote_limit'" - execute "UPDATE site_settings SET name = 'topic_voting_tl3_vote_limit' WHERE name = 'voting_tl3_vote_limit'" - execute "UPDATE site_settings SET name = 'topic_voting_tl4_vote_limit' WHERE name = 'voting_tl4_vote_limit'" + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_alert_votes_left' + WHERE name = 'voting_alert_votes_left' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_alert_votes_left'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_enabled' + WHERE name = 'voting_enabled' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_enabled'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_show_who_voted' + WHERE name = 'voting_show_who_voted' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_show_who_voted'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_show_votes_on_profile' + WHERE name = 'voting_show_votes_on_profile' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_show_votes_on_profile'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_tl0_vote_limit' + WHERE name = 'voting_tl0_vote_limit' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_tl0_vote_limit'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_tl1_vote_limit' + WHERE name = 'voting_tl1_vote_limit' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_tl1_vote_limit'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_tl2_vote_limit' + WHERE name = 'voting_tl2_vote_limit' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_tl2_vote_limit'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_tl3_vote_limit' + WHERE name = 'voting_tl3_vote_limit' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_tl3_vote_limit'); + SQL + + execute <<-SQL + UPDATE site_settings SET name = 'topic_voting_tl4_vote_limit' + WHERE name = 'voting_tl4_vote_limit' AND + NOT EXISTS (SELECT 1 FROM site_settings WHERE name = 'topic_voting_tl4_vote_limit'); + SQL end def down