From f49e4f7aa98da4fe00b7e396dff1138e54c995b7 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 5 Aug 2026 15:56:07 +0200 Subject: [PATCH] Fix missing `on_delete: :cascade` on `GeneratedAnnualReport` foreign key (#40063) --- ...40111033014_create_generated_annual_reports.rb | 2 +- ...16_fix_generated_annual_reports_foreign_key.rb | 15 +++++++++++++++ db/schema.rb | 4 ++-- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20260805130216_fix_generated_annual_reports_foreign_key.rb diff --git a/db/migrate/20240111033014_create_generated_annual_reports.rb b/db/migrate/20240111033014_create_generated_annual_reports.rb index 2a755fb14e7..c8ef4358590 100644 --- a/db/migrate/20240111033014_create_generated_annual_reports.rb +++ b/db/migrate/20240111033014_create_generated_annual_reports.rb @@ -3,7 +3,7 @@ class CreateGeneratedAnnualReports < ActiveRecord::Migration[7.1] def change create_table :generated_annual_reports do |t| - t.belongs_to :account, null: false, foreign_key: { on_cascade: :delete }, index: false + t.belongs_to :account, null: false, foreign_key: true, index: false t.integer :year, null: false t.jsonb :data, null: false t.integer :schema_version, null: false diff --git a/db/migrate/20260805130216_fix_generated_annual_reports_foreign_key.rb b/db/migrate/20260805130216_fix_generated_annual_reports_foreign_key.rb new file mode 100644 index 00000000000..97a3e7cc675 --- /dev/null +++ b/db/migrate/20260805130216_fix_generated_annual_reports_foreign_key.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class FixGeneratedAnnualReportsForeignKey < ActiveRecord::Migration[8.1] + def up + safety_assured do + execute 'ALTER TABLE generated_annual_reports DROP CONSTRAINT fk_rails_4ca37f035c, ADD CONSTRAINT fk_rails_4ca37f035c FOREIGN KEY (account_id) REFERENCES accounts(id) ON DELETE CASCADE;' + end + end + + def down + safety_assured do + execute 'ALTER TABLE generated_annual_reports DROP CONSTRAINT fk_rails_4ca37f035c, ADD CONSTRAINT fk_rails_4ca37f035c FOREIGN KEY (account_id) REFERENCES accounts(id);' + end + end +end diff --git a/db/schema.rb b/db/schema.rb index dfcc4438679..af612111fcc 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[8.1].define(version: 2026_08_04_081821) do +ActiveRecord::Schema[8.1].define(version: 2026_08_05_130216) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -1551,7 +1551,7 @@ ActiveRecord::Schema[8.1].define(version: 2026_08_04_081821) do add_foreign_key "follow_requests", "accounts", name: "fk_76d644b0e7", on_delete: :cascade add_foreign_key "follows", "accounts", column: "target_account_id", name: "fk_745ca29eac", on_delete: :cascade add_foreign_key "follows", "accounts", name: "fk_32ed1b5560", on_delete: :cascade - add_foreign_key "generated_annual_reports", "accounts" + add_foreign_key "generated_annual_reports", "accounts", on_delete: :cascade add_foreign_key "global_follow_recommendations", "accounts", on_delete: :cascade add_foreign_key "identities", "users", name: "fk_bea040f377", on_delete: :cascade add_foreign_key "instance_moderation_notes", "accounts", on_delete: :cascade