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

Commit c29500a3 by Sascha Depold

use custom event emitter to drop the table during sync instead of extending mode…

…l factory with eventemitter
1 parent f7cb6ef4
Showing with 15 additions and 14 deletions
......@@ -18,7 +18,6 @@ var ModelFactory = module.exports = function(name, attributes, options) {
this.__addOptionalClassMethods()
this.__findAutoIncrementField()
}
Utils.addEventEmitter(ModelFactory)
ModelFactory.prototype.__defineGetter__('QueryGenerator', function() {
return this.modelManager.sequelize.connectorManager.getQueryGenerator()
......@@ -28,21 +27,23 @@ ModelFactory.prototype.sync = function(options) {
options = Utils.merge(options || {}, this.options)
var self = this
var doQuery = function() {
self.__query(self.QueryGenerator.createTableQuery(self.tableName, self.attributes, options))
.on('success', function() { self.emit('success', self) })
.on('failure', function(err) { self.emit('failure', err) })
}
var eventEmitter = new Utils.CustomEventEmitter(function() {
var doQuery = function() {
self.__query(self.QueryGenerator.createTableQuery(self.tableName, self.attributes, options))
.on('success', function() { eventEmitter.emit('success', self) })
.on('failure', function(err) { eventEmitter.emit('failure', err) })
}
if(options.force) {
this.drop()
.on('success', function() { doQuery() })
.on('failure', function(err) { self.emit('failure', err) })
} else {
doQuery()
}
if(options.force) {
self.drop()
.on('success', function() { doQuery() })
.on('failure', function(err) { eventEmitter.emit('failure', err) })
} else {
doQuery()
}
})
return this
return eventEmitter.run()
}
ModelFactory.prototype.drop = function() {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!