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