Sequelize:更新Model.destroy()上的colum值

时间:2016-11-27 05:45:18

标签: node.js sequelize.js

我有一个使用paranoid: true续集的模型,这意味着在Model.destroy()后,deletedAt列将设置日期时间值。

但是,我希望在is_archived被称为时将自定义列Model.destroy()值设置为1,而不必在删除后再进行第二次Model.update()查询
我尝试在instance.is_archived = 1个钩子中设置before/afterDestroy,但它们似乎无效。

任何建议:)?

1 个答案:

答案 0 :(得分:2)

由于这里没有答案,因此我将其发布了。 Sequelize不支持在beforeDestroyafterDestroy挂钩中更新属性。最好的方法是在挂钩内调用save()update()

afterDestroy(instance) {
  instance.is_archived = 1;
  await instance.save({ paranoid: false });
}

最好在afterDestroy内进行删除,因为已经删除了。在beforeDestroy中,实例将不会被删除。

请参见https://github.com/sequelize/sequelize/issues/9318