Remove ignored column from in_product_marketing_emails
What does this MR do and why?
Remove constraint, index and campaign
column from in_product_marketing_emails
table
Column marked as ignored - !131787 (diffs)
Database changes
This is basically reverts original implementation DB changes - Experiment: "Build iOS app guide" email campaign (!83817 - merged)
- Remove
campaign
(text
) column fromin_product_marketing_emails
. - Remove unique multicolumn index on
user_id
andcampaign
. - Remove check constraint to ensure that
track
andseries
areNOT NULL
whencampaign IS NULL
ORtrack
andseries
areNULL
whencampaign IS NOT NULL
.
Migrations
Migrate
== 20231101130230 RemoveInProductMarketingEmailsCampaignColumn: migrating =====
-- change_column_null(:in_product_marketing_emails, :track, false)
-> 0.0044s
-- change_column_null(:in_product_marketing_emails, :series, false)
-> 0.0025s
-- transaction_open?(nil)
-> 0.0000s
-- transaction_open?(nil)
-> 0.0000s
-- execute(" ALTER TABLE in_product_marketing_emails\n DROP CONSTRAINT IF EXISTS in_product_marketing_emails_track_and_series_or_campaign\n")
-> 0.0024s
-- transaction_open?(nil)
-> 0.0002s
-- view_exists?(:postgres_partitions)
-> 0.3947s
-- indexes(:in_product_marketing_emails)
-> 0.0126s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- remove_index(:in_product_marketing_emails, {:algorithm=>:concurrently, :name=>:index_in_product_marketing_emails_on_user_campaign})
-> 0.0059s
-- execute("RESET statement_timeout")
-> 0.0012s
-- transaction_open?(nil)
-> 0.0000s
-- remove_column(:in_product_marketing_emails, :campaign, {:if_exists=>true})
-> 0.0056s
== 20231101130230 RemoveInProductMarketingEmailsCampaignColumn: migrated (0.5361s)
Rollback
== 20231101130230 RemoveInProductMarketingEmailsCampaignColumn: reverting =====
-- change_column_null(:in_product_marketing_emails, :track, true)
-> 0.0040s
-- change_column_null(:in_product_marketing_emails, :series, true)
-> 0.0014s
-- transaction_open?(nil)
-> 0.0000s
-- add_column(:in_product_marketing_emails, :campaign, :text, {:if_not_exists=>true})
-> 0.2067s
-- transaction_open?(nil)
-> 0.0000s
-- transaction_open?(nil)
-> 0.0000s
-- execute("ALTER TABLE in_product_marketing_emails\nADD CONSTRAINT check_9d8b29f74f\nCHECK ( char_length(campaign) <= 255 )\nNOT VALID;\n")
-> 0.0025s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- execute("ALTER TABLE in_product_marketing_emails VALIDATE CONSTRAINT check_9d8b29f74f;")
-> 0.0019s
-- execute("RESET statement_timeout")
-> 0.0011s
-- transaction_open?(nil)
-> 0.0000s
-- view_exists?(:postgres_partitions)
-> 0.0021s
-- index_exists?(:in_product_marketing_emails, [:user_id, :campaign], {:unique=>true, :name=>:index_in_product_marketing_emails_on_user_campaign, :algorithm=>:concurrently})
-> 0.0109s
-- add_index(:in_product_marketing_emails, [:user_id, :campaign], {:unique=>true, :name=>:index_in_product_marketing_emails_on_user_campaign, :algorithm=>:concurrently})
-> 0.0049s
-- transaction_open?(nil)
-> 0.0000s
-- transaction_open?(nil)
-> 0.0000s
-- execute("ALTER TABLE in_product_marketing_emails\nADD CONSTRAINT in_product_marketing_emails_track_and_series_or_campaign\nCHECK ( (track IS NOT NULL AND series IS NOT NULL AND campaign IS NULL) OR (track IS NULL AND series IS NULL AND campaign IS NOT NULL) )\nNOT VALID;\n")
-> 0.0013s
-- execute("ALTER TABLE in_product_marketing_emails VALIDATE CONSTRAINT in_product_marketing_emails_track_and_series_or_campaign;")
-> 0.0015s
== 20231101130230 RemoveInProductMarketingEmailsCampaignColumn: reverted (0.3494s)
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #426381 (closed)
Edited by Serhii Yarynovskyi