Я использую Sequelize.js с установленным для paranoid режимом true.
Моя проблема заключается в том, что когда я пытаюсь обратимо удалить строку с помощью метода Model.destroy, он не проверяет, есть ли ссылка на эту строку перед ее обратимым удалением. До того, как я начал использовать paranoid, sequenceize выдавал ошибку при попытке уничтожить строку, на которую ссылались, и я хотел бы сохранить это поведение сейчас, когда я использую paranoid.
Я нашел два похожих вопроса по этому поводу:
Проверьте, ссылается ли объект на предотвращение мягкого -удаление без изменения базы данных
Sequelize - Предотвратить уничтожение строки при использовании в другом месте в ассоциации < /а>
У 1-го решения не было, но было ограничение, которого у меня нет: прикосновение к БД.
2-й имеет следующее решение:
User.hasMany(Roles, { foreignKey: "whatever", onDelete: 'restrict', onUpdate: 'restrict'});
Это определенно решение, но оно потребует много работы, потому что мне нужно иметь такое поведение для всех моих таблиц, и на многие из них ссылаются N других таблиц.
Есть ли способ заставить сиквел всегда проверять ссылки перед обратимым удалением? У меня нет никаких ограничений на прикосновение к БД или выполнение ресурсоемких запросов на хуке beforeBulkDelete.