安排如何包括软删除的记录Deleted

时间:2019-03-03 22:59:24

标签: sequelize.js

我正在尝试添加功能以取消删除用户的行为

Users.update( { deletedAt: null }, { where: { userId: request.params.userId } });

这无法正常工作,并且不会将记录的deleteAt参数更新为null

当我打开日志记录时,我看到上面的内容,然后解析为下面的内容

  

执行(默认):UPDATE users SET   deletedAt = NULL,updatedAt ='2019-03-03 22:53:54'在哪里(({deletedAt   >'2019-03-03 22:53:54'或deletedAt为空)和userId = 2174)

似乎更新语句正在忽略我要删除的项目,因为它已被删除。相当难题eh ..

我如何告诉sequelize也更新已删除的记录?我尝试添加paranoid: false标志,但它似乎不是更新选项中的合法参数

2 个答案:

答案 0 :(得分:1)

我认为您需要的是paranoid: false

试试这个:

Users.update( { deletedAt: null }, { where: { userId: request.params.userId } , paranoid: false  });
  

options.paranoid

     

如果为true,则仅更新未删除的记录。如果为假,则两者   删除和未删除的记录将被更新。仅适用于   options.paranoid对于模型为true。

更多详细信息: DO READ

答案 1 :(得分:0)

您可以使用 Model.restore 方法进行非软删除。这是支持选项的完整列表的 API doc

示例:

let { userId } = request.params;
await User.restore({ where: { userId } });