From 3b7010337c16338116520194cbc3ceba55e188aa Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Tue, 19 Mar 2024 19:06:30 -0400 Subject: [PATCH] fix: Missing cascade prevents team permanant deletion --- ...x-user-permissions-createdby-constraint.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 server/migrations/20240319230356-fix-user-permissions-createdby-constraint.js diff --git a/server/migrations/20240319230356-fix-user-permissions-createdby-constraint.js b/server/migrations/20240319230356-fix-user-permissions-createdby-constraint.js new file mode 100644 index 000000000..23fc723ec --- /dev/null +++ b/server/migrations/20240319230356-fix-user-permissions-createdby-constraint.js @@ -0,0 +1,46 @@ +'use strict'; + +/** @type {import('sequelize-cli').Migration} */ +module.exports = { + async up(queryInterface) { + await queryInterface.sequelize.transaction(async (transaction) => { + await queryInterface.removeConstraint( + "user_permissions", + "user_permissions_createdById_fkey", + { transaction } + ); + await queryInterface.addConstraint("user_permissions", { + fields: ["createdById"], + name: "user_permissions_createdById_fkey", + type: "foreign key", + onDelete: "cascade", + references: { + table: "users", + field: "id", + }, + transaction, + }); + }); + }, + + async down(queryInterface) { + await queryInterface.sequelize.transaction(async (transaction) => { + await queryInterface.removeConstraint( + "user_permissions", + "user_permissions_createdById_fkey", + { transaction } + ); + await queryInterface.addConstraint("user_permissions", { + fields: ["createdById"], + name: "user_permissions_createdById_fkey", + type: "foreign key", + onDelete: "set null", + references: { + table: "users", + field: "id", + }, + transaction, + }); + }); + } +};