diff --git a/server/migrations/20211107021900-missing-cascades.js b/server/migrations/20211107021900-missing-cascades.js new file mode 100644 index 000000000..bdfe9d7b8 --- /dev/null +++ b/server/migrations/20211107021900-missing-cascades.js @@ -0,0 +1,51 @@ +module.exports = { + up: async (queryInterface, Sequelize) => { + let tableName, constraintName; + + tableName = "collection_groups"; + constraintName = "collection_groups_collectionId_fkey"; + await queryInterface.sequelize.query( + `alter table "${tableName}" drop constraint "${constraintName}"` + ); + await queryInterface.sequelize.query( + `alter table "${tableName}" + add constraint "${constraintName}" foreign key("collectionId") references "collections" ("id") + on delete cascade` + ); + + constraintName = "collection_groups_groupId_fkey"; + await queryInterface.sequelize.query( + `alter table "${tableName}" drop constraint "${constraintName}"` + ); + await queryInterface.sequelize.query( + `alter table "${tableName}" + add constraint "${constraintName}" foreign key("groupId") references "groups" ("id") + on delete cascade` + ); + }, + + down: async (queryInterface, Sequelize) => { + let tableName, constraintName; + + tableName = "collection_groups"; + constraintName = "collection_groups_collectionId_fkey"; + await queryInterface.sequelize.query( + `alter table "${tableName}" drop constraint "${constraintName}"` + ); + await queryInterface.sequelize.query( + `alter table "${tableName}" + add constraint "${constraintName}" foreign key("collectionId") references "collections" ("id") + on delete no action` + ); + + constraintName = "collection_groups_groupId_fkey"; + await queryInterface.sequelize.query( + `alter table "${tableName}" drop constraint "${constraintName}"` + ); + await queryInterface.sequelize.query( + `alter table "${tableName}" + add constraint "${constraintName}" foreign key("groupId") references "groups" ("id") + on delete no action` + ); + }, +};