Sequelize — Предотвращает уничтожение строки при использовании где-то еще в ассоциации

#javascript #node.js #sequelize.js

#javascript #node.js #sequelize.js

Вопрос:

Есть ли способ сделать Sequelize.js выдавать исключение, когда я пытаюсь уничтожить строку, что используется где-то в ассоциации?

В качестве примера давайте возьмем таблицу для Roles и таблицу для Users . У них есть ассоциация N: M, поэтому любой пользователь может иметь много ролей.

Проблема заключается в том, что у пользователя мало ролей, и строка включенной роли удаляется. Пользователь просто теряет эту роль. Как предотвратить удаление роли, если ассоциация не будет удалена первой?

Ответ №1:

Вы можете управлять этим в ассоциации, используя OnDelete и onUpdate, вот так:

 User.hasMany(Roles, { foreignKey: "whatever", onDelete: 'restrict', onUpdate: 'restrict'}); 
  

В разделе руководства по внешнему ключу упоминаются опции