续订交易冲突

我想知道一种方式来创build一个事务,而不是在其他模型之间共享,下面的代码抛出一个exception

Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: cannot start a transaction within a transaction at module.exports.Query.formatError (workspace/node_modules/sequelize/lib/dialects/sqlite/query.js:239:16) at Statement.<anonymous> (workspace/node_modules/sequelize/lib/dialects/sqlite/query.js:47:31) at Statement.replacement (workspace/node_modules/sqlite3/lib/trace.js:20:31) at Statement.replacement (workspace/node_modules/sqlite3/lib/trace.js:20:31) 

名称为'I will exist'的模型不能在事务上,但是继续尝试将其插入到在另一个函数上创build的事务上。

 return Promise.all([ sequelize.transaction(function (transaction) { return new Promise(function (r) { setTimeout(function () { r(); }, 1000); }).then(function () { User.create({ name : 'Im out of tx' }); }); }), sequelize.transaction(function (transaction) { return Promise.all([ User.create({ name : 'I will exist' }), User.create({ name : 'I will not exist' }, { transaction : transaction }) ]).then(function () { return new Promise(function (r) { setTimeout(function () { r(); }, 1000); }); }).then(function () { throw new SaphyreError('ok, now rollback'); }); }).then(function () { throw new Error('an error should be thrown'); }).catch(SaphyreError, function (err) { expect(err).to.have.property('message').equal('ok, now rollback'); return User.findAll(); }) ]).spread(function (a, b) { expect(b).with.length(2); }); 

我想知道如何创build一个交易,而不是全球共享。

此错误仅在内存SQLLiteconfiguration中发生。 我不知道,但我认为当它是内存时,续集无法并发处理事务。

也许这是一个错误。