不要怂,就是干,撸起袖子干!

Commit 99acca94 by Jan Aagaard Meier

remove any existing DB file in transaction setup for sqlite

1 parent 26aef71d
...@@ -1129,7 +1129,6 @@ describe(Support.getTestDialectTeaser("HasMany"), function() { ...@@ -1129,7 +1129,6 @@ describe(Support.getTestDialectTeaser("HasMany"), function() {
this.User.hasMany(this.Task, { through: this.UserTask }); this.User.hasMany(this.Task, { through: this.UserTask });
this.Task.hasMany(this.User, { through: this.UserTask }); this.Task.hasMany(this.User, { through: this.UserTask });
this.sequelize = sequelize; this.sequelize = sequelize;
return sequelize.sync({ force: true }); return sequelize.sync({ force: true });
}).then(function() { }).then(function() {
......
...@@ -906,7 +906,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () { ...@@ -906,7 +906,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
it('supports nested transactions using savepoints', function(done) { it('supports nested transactions using savepoints', function(done) {
var self = this var self = this
var User = this.sequelize.define('Users', { username: DataTypes.STRING }) var User = this.sequelizeWithTransaction.define('Users', { username: DataTypes.STRING })
User.sync({ force: true }).success(function() { User.sync({ force: true }).success(function() {
self.sequelizeWithTransaction.transaction().then(function(t1) { self.sequelizeWithTransaction.transaction().then(function(t1) {
...@@ -994,7 +994,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () { ...@@ -994,7 +994,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
it('supports rolling back a nested transaction', function(done) { it('supports rolling back a nested transaction', function(done) {
var self = this var self = this
var User = this.sequelize.define('Users', { username: DataTypes.STRING }) var User = this.sequelizeWithTransaction.define('Users', { username: DataTypes.STRING })
User.sync({ force: true }).success(function() { User.sync({ force: true }).success(function() {
self.sequelizeWithTransaction.transaction().then(function(t1) { self.sequelizeWithTransaction.transaction().then(function(t1) {
...@@ -1019,7 +1019,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () { ...@@ -1019,7 +1019,7 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
it('supports rolling back outermost transaction', function(done) { it('supports rolling back outermost transaction', function(done) {
var self = this var self = this
var User = this.sequelize.define('Users', { username: DataTypes.STRING }) var User = this.sequelizeWithTransaction.define('Users', { username: DataTypes.STRING })
User.sync({ force: true }).success(function() { User.sync({ force: true }).success(function() {
self.sequelizeWithTransaction.transaction().then(function(t1) { self.sequelizeWithTransaction.transaction().then(function(t1) {
......
...@@ -38,14 +38,25 @@ var Support = { ...@@ -38,14 +38,25 @@ var Support = {
var dialect = Support.getTestDialect(); var dialect = Support.getTestDialect();
if (dialect === 'sqlite') { if (dialect === 'sqlite') {
var options = Sequelize.Utils._.extend({}, sequelize.options, { storage: path.join(__dirname, 'tmp', 'db.sqlite') }) var p = path.join(__dirname, 'tmp', 'db.sqlite');
, _sequelize = new Sequelize(sequelize.config.database, null, null, options);
return new Sequelize.Promise(function (resolve, reject) {
if (callback) { // We cannot promisify exists, since exists does not follow node callback convention - first argument is a boolean, not an error / null
_sequelize.sync({ force: true }).success(function() { callback(_sequelize); }); if (fs.existsSync(p)) {
} else { resolve(Sequelize.Promise.promisify(fs.unlink)(p));
return _sequelize.sync({ force: true }).return(_sequelize); } else {
} resolve();
}
}).then(function () {
var options = Sequelize.Utils._.extend({}, sequelize.options, { storage: p })
, _sequelize = new Sequelize(sequelize.config.database, null, null, options);
if (callback) {
_sequelize.sync({ force: true }).success(function() { callback(_sequelize); });
} else {
return _sequelize.sync({ force: true }).return(_sequelize);
}
});
} else { } else {
if (callback) { if (callback) {
callback(sequelize); callback(sequelize);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!