Вы правы, в настоящее время нет поддержки транзакций.Ваша проблема на самом деле звучит так, будто вы делаете что-то вроде:
sequelize.query('UPDATE mytable SET expired=0').success(function() {
Mytable.findAll(/* conditions */ ).success(function(entries) {
entries.forEach(function(entry){ entries.updateAttributes({expired:1}) })
Mytable.findAll().success(function(entries){
// check status of entries
})
})
})
Этот код обновляет некоторые записи, но не ждет, пока это будет сделано.Если у вас есть что-то вроде этого, вы должны использовать QueryChainer, например, так:
var chainer = new Sequelize.Utils.QueryChainer
entries.forEach(function(entry) {
chainer.add(entry.updateAttributes({ expired: 1 }))
})
chainer.run().success(function() {
// now go on here
})
Если у вас нет вышеуказанной ошибки и вы хотите сначала собрать все операции и выполнить их массово впоследствии (и последовательно), сделайте это:
var chainer = new Sequelize.Utils.QueryChainer
entries.forEach(function(entry) {
chainer.add(entry, 'updateAttributes', [{ expired: 1 }])
})
chainer.runSerially().success(function() {
// now go on here
})
Надеюсь, что поможет