Skip to content

Commit f95ff93

Browse files
committed
Fix: Supprimer les assignations de cette option aux utilisateurs avant de supprimer l'option elle-même
refers to https://trello.com/c/8jz3Zzmv/2636 - Eviter une erreur de contrainte de clé étrangère. Si des utilisateurs ont déjà l'option "access_action_finances" assignée dans "user_permission_options", la migration down échouera.
1 parent 4a153c2 commit f95ff93

1 file changed

Lines changed: 22 additions & 3 deletions

File tree

packages/api/db/migrations/30000106-02-create-permission-option-access_action_finances.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,26 @@ module.exports = {
1111
],
1212
),
1313

14-
down: queryInterface => queryInterface.sequelize.query(
15-
'DELETE FROM permission_options WHERE uid = \'access_action_finances\'',
16-
),
14+
async down(queryInterface) {
15+
const transaction = await queryInterface.sequelize.transaction();
16+
17+
try {
18+
// Supprimer les assignations de cette option aux utilisateurs
19+
await queryInterface.sequelize.query(
20+
'DELETE FROM user_permission_options WHERE fk_option = \'access_action_finances\'',
21+
{ transaction },
22+
);
23+
24+
// Puis supprimer l'option elle-même
25+
await queryInterface.sequelize.query(
26+
'DELETE FROM permission_options WHERE uid = \'access_action_finances\'',
27+
{ transaction },
28+
);
29+
30+
return transaction.commit();
31+
} catch (error) {
32+
await transaction.rollback();
33+
throw error;
34+
}
35+
},
1736
};

0 commit comments

Comments
 (0)