Friday, May 10, 2024
 Popular · Latest · Hot · Upcoming
113
rated 0 times [  115] [ 2]  / answers: 1 / hits: 13660  / 10 Years ago, wed, november 12, 2014, 12:00:00

I'm using Sequelize.js in paranoid mode in my node.js project and while the soft deletion works as expected in finding and deleting data, i'm having trouble finding a way to undelete soft deleted rows.



I know I can get deleted rows by using as explained in the docs



Model.findAll({paranoid: false, where: {deletedAt: {ne: null}}})


but paranoid: false isn't available when updating.



Is undeleting soft deleted rows even possible in Sequelize or am I just missing something?


More From » node.js

 Answers
1

You can use 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]);
});


Please note that this snippet uses Sequelize@v2


[#41305] Tuesday, November 11, 2014, 10 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
tayaw

Total Points: 749
Total Questions: 88
Total Answers: 86

Location: Djibouti
Member since Sun, Feb 27, 2022
2 Years ago
tayaw questions
;