我在我的node.js项目中以偏执模式使用Sequelize.js,而软删除在查找和删除数据时按预期工作,我很难找到取消删除软删除行的方法.
我知道我可以使用docs中的解释来删除行
Model.findAll({paranoid: false,where: {deletedAt: {ne: null}}})
但是偏执:updating时没有假.
是否可以在Sequelize中取消删除软删除的行,或者我只是遗漏了什么?
解决方法
您可以使用instance.setDataValue(‘deletedAt’,null):
var Bluebird = require('bluebird');
var models = require('./models');
models.sequelize.sync({force: true })
.then(function () {
return models.User.create({ name: 'user' })
})
.then(function (user) {
return user.destroy()
})
.then(function () {
return models.sequelize.models.User.findAll({ paranoid: false });
})
.then(function (users) {
var user = users[0];
user.setDataValue('deletedAt',null);
return user.save({ paranoid: false });
}).then(function () {
return models.sequelize.models.User.findAll();
}).then(function (users) {
console.log(users[0]);
});
请注意,此代码段使用Sequelize @ v2