diff --git a/server/migrations/20250917124000-fix-shares-collection-cascade.js b/server/migrations/20250917124000-fix-shares-collection-cascade.js new file mode 100644 index 0000000000..5d71798d7e --- /dev/null +++ b/server/migrations/20250917124000-fix-shares-collection-cascade.js @@ -0,0 +1,36 @@ +"use strict"; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface, Sequelize) { + // Drop the existing foreign key constraint + await queryInterface.sequelize.query( + `ALTER TABLE "shares" DROP CONSTRAINT "shares_collectionId_fkey"` + ); + + // Add the foreign key constraint with CASCADE delete + await queryInterface.sequelize.query(` + ALTER TABLE "shares" + ADD CONSTRAINT "shares_collectionId_fkey" + FOREIGN KEY("collectionId") + REFERENCES "collections" ("id") + ON DELETE CASCADE + `); + }, + + async down(queryInterface, Sequelize) { + // Drop the cascade constraint + await queryInterface.sequelize.query( + `ALTER TABLE "shares" DROP CONSTRAINT "shares_collectionId_fkey"` + ); + + // Add back the original constraint without cascade + await queryInterface.sequelize.query(` + ALTER TABLE "shares" + ADD CONSTRAINT "shares_collectionId_fkey" + FOREIGN KEY("collectionId") + REFERENCES "collections" ("id") + ON DELETE NO ACTION + `); + }, +};