From 653c925beb800b07a493e6915c784ddf936eecc3 Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Wed, 30 Jun 2021 06:13:55 +0200
Subject: [PATCH] Fix missing on_delete: :cascade for canonical_email_blocks
 foreign key (#16448)

---
 .../20210416200740_create_canonical_email_blocks.rb |  2 +-
 ...000137_fix_canonical_email_blocks_foreign_key.rb | 13 +++++++++++++
 db/schema.rb                                        |  4 ++--
 3 files changed, 16 insertions(+), 3 deletions(-)
 create mode 100644 db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb

diff --git a/db/migrate/20210416200740_create_canonical_email_blocks.rb b/db/migrate/20210416200740_create_canonical_email_blocks.rb
index a1f1660bff..32c44646c3 100644
--- a/db/migrate/20210416200740_create_canonical_email_blocks.rb
+++ b/db/migrate/20210416200740_create_canonical_email_blocks.rb
@@ -2,7 +2,7 @@ class CreateCanonicalEmailBlocks < ActiveRecord::Migration[6.1]
   def change
     create_table :canonical_email_blocks do |t|
       t.string :canonical_email_hash, null: false, default: '', index: { unique: true }
-      t.belongs_to :reference_account, null: false, foreign_key: { on_cascade: :delete, to_table: 'accounts' }
+      t.belongs_to :reference_account, null: false, foreign_key: { to_table: 'accounts' }
 
       t.timestamps
     end
diff --git a/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb b/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb
new file mode 100644
index 0000000000..64cf84448b
--- /dev/null
+++ b/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb
@@ -0,0 +1,13 @@
+class FixCanonicalEmailBlocksForeignKey < ActiveRecord::Migration[6.1]
+  def up
+    safety_assured do
+      execute 'ALTER TABLE canonical_email_blocks DROP CONSTRAINT fk_rails_1ecb262096, ADD CONSTRAINT fk_rails_1ecb262096 FOREIGN KEY (reference_account_id) REFERENCES accounts(id) ON DELETE CASCADE;'
+    end
+  end
+
+  def down
+    safety_assured do
+      execute 'ALTER TABLE canonical_email_blocks DROP CONSTRAINT fk_rails_1ecb262096, ADD CONSTRAINT fk_rails_1ecb262096 FOREIGN KEY (reference_account_id) REFERENCES accounts(id);'
+    end
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 31bf565b4f..935e2a5642 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2021_06_09_202149) do
+ActiveRecord::Schema.define(version: 2021_06_30_000137) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -997,7 +997,7 @@ ActiveRecord::Schema.define(version: 2021_06_09_202149) do
   add_foreign_key "blocks", "accounts", name: "fk_4269e03e65", on_delete: :cascade
   add_foreign_key "bookmarks", "accounts", on_delete: :cascade
   add_foreign_key "bookmarks", "statuses", on_delete: :cascade
-  add_foreign_key "canonical_email_blocks", "accounts", column: "reference_account_id"
+  add_foreign_key "canonical_email_blocks", "accounts", column: "reference_account_id", on_delete: :cascade
   add_foreign_key "conversation_mutes", "accounts", name: "fk_225b4212bb", on_delete: :cascade
   add_foreign_key "conversation_mutes", "conversations", on_delete: :cascade
   add_foreign_key "custom_filters", "accounts", on_delete: :cascade