cascade foreign keys

This commit is contained in:
2026-07-28 18:13:04 +02:00
parent b1da8c9a84
commit ba91b6c5e1
@@ -0,0 +1,30 @@
class AddCascadeToSoftwareForeignKeys < ActiveRecord::Migration[8.1]
def up
remove_foreign_key :external_links, name: "fk_softwares_external_links"
add_foreign_key :external_links, :softwares, name: "fk_softwares_external_links", on_delete: :cascade
remove_foreign_key :releases, name: "fk_softwares_releases"
add_foreign_key :releases, :softwares, name: "fk_softwares_releases", on_delete: :cascade
remove_foreign_key :software_images, :softwares
add_foreign_key :software_images, :softwares, on_delete: :cascade
# Keep download stats when a release is removed.
remove_foreign_key :downloads, name: "fk_downloads_release"
add_foreign_key :downloads, :releases, name: "fk_downloads_release", on_delete: :nullify
end
def down
remove_foreign_key :external_links, name: "fk_softwares_external_links"
add_foreign_key :external_links, :softwares, name: "fk_softwares_external_links"
remove_foreign_key :releases, name: "fk_softwares_releases"
add_foreign_key :releases, :softwares, name: "fk_softwares_releases"
remove_foreign_key :software_images, :softwares
add_foreign_key :software_images, :softwares
remove_foreign_key :downloads, name: "fk_downloads_release"
add_foreign_key :downloads, :releases, name: "fk_downloads_release"
end
end