我正在尝试添加功能以取消删除用户的行为
Users.update( { deletedAt: null }, { where: { userId: request.params.userId } });
这无法正常工作,并且不会将记录的deleteAt参数更新为null
当我打开日志记录时,我看到上面的内容,然后解析为下面的内容
执行(默认):UPDATE
users
SETdeletedAt
= NULL,updatedAt
='2019-03-03 22:53:54'在哪里(({deletedAt
>'2019-03-03 22:53:54'或deletedAt
为空)和userId
= 2174)
似乎更新语句正在忽略我要删除的项目,因为它已被删除。相当难题eh ..
我如何告诉sequelize也更新已删除的记录?我尝试添加paranoid: false
标志,但它似乎不是更新选项中的合法参数
答案 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 } });