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

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 7 additions and 6 deletions
...@@ -18,7 +18,6 @@ var ModelFactory = module.exports = function(name, attributes, options) { ...@@ -18,7 +18,6 @@ var ModelFactory = module.exports = function(name, attributes, options) {
this.__addOptionalClassMethods() this.__addOptionalClassMethods()
this.__findAutoIncrementField() this.__findAutoIncrementField()
} }
Utils.addEventEmitter(ModelFactory)
ModelFactory.prototype.__defineGetter__('QueryGenerator', function() { ModelFactory.prototype.__defineGetter__('QueryGenerator', function() {
return this.modelManager.sequelize.connectorManager.getQueryGenerator() return this.modelManager.sequelize.connectorManager.getQueryGenerator()
...@@ -28,21 +27,23 @@ ModelFactory.prototype.sync = function(options) { ...@@ -28,21 +27,23 @@ ModelFactory.prototype.sync = function(options) {
options = Utils.merge(options || {}, this.options) options = Utils.merge(options || {}, this.options)
var self = this var self = this
var eventEmitter = new Utils.CustomEventEmitter(function() {
var doQuery = function() { var doQuery = function() {
self.__query(self.QueryGenerator.createTableQuery(self.tableName, self.attributes, options)) self.__query(self.QueryGenerator.createTableQuery(self.tableName, self.attributes, options))
.on('success', function() { self.emit('success', self) }) .on('success', function() { eventEmitter.emit('success', self) })
.on('failure', function(err) { self.emit('failure', err) }) .on('failure', function(err) { eventEmitter.emit('failure', err) })
} }
if(options.force) { if(options.force) {
this.drop() self.drop()
.on('success', function() { doQuery() }) .on('success', function() { doQuery() })
.on('failure', function(err) { self.emit('failure', err) }) .on('failure', function(err) { eventEmitter.emit('failure', err) })
} else { } else {
doQuery() doQuery()
} }
})
return this return eventEmitter.run()
} }
ModelFactory.prototype.drop = function() { 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!