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

Commit fdc58596 by Sascha Depold

Merge pull request #1298 from janmeier/badPooling

Fix for connection errors when using replication
2 parents 2720578b 7ad48925
...@@ -90,7 +90,10 @@ module.exports = (function() { ...@@ -90,7 +90,10 @@ module.exports = (function() {
var config = self.config.replication.read[reads++] var config = self.config.replication.read[reads++]
connect.call(self, function (err, connection) { connect.call(self, function (err, connection) {
connection.queryType = 'read' if (connection) {
connection.queryType = 'read'
}
done(null, connection) done(null, connection)
}, config) }, config)
}, },
...@@ -106,7 +109,10 @@ module.exports = (function() { ...@@ -106,7 +109,10 @@ module.exports = (function() {
name: 'sequelize-write', name: 'sequelize-write',
create: function (done) { create: function (done) {
connect.call(self, function (err, connection) { connect.call(self, function (err, connection) {
connection.queryType = 'write' if (connection) {
connection.queryType = 'write'
}
done(null, connection) done(null, connection)
}, self.config.replication.write) }, self.config.replication.write)
}, },
......
...@@ -88,8 +88,11 @@ module.exports = (function() { ...@@ -88,8 +88,11 @@ module.exports = (function() {
var config = self.config.replication.read[reads++]; var config = self.config.replication.read[reads++];
connect.call(self, function (err, connection) { connect.call(self, function (err, connection) {
connection.queryType = 'read' if (connection) {
done(null, connection) connection.queryType = 'read'
}
done(err, connection)
}, config); }, config);
}, },
destroy: function(client) { destroy: function(client) {
...@@ -104,8 +107,11 @@ module.exports = (function() { ...@@ -104,8 +107,11 @@ module.exports = (function() {
name: 'sequelize-write', name: 'sequelize-write',
create: function (done) { create: function (done) {
connect.call(self, function (err, connection) { connect.call(self, function (err, connection) {
connection.queryType = 'write' if (connection) {
done(null, connection) connection.queryType = 'read'
}
done(err, connection)
}, self.config.replication.write); }, self.config.replication.write);
}, },
destroy: function(client) { destroy: function(client) {
...@@ -296,7 +302,6 @@ module.exports = (function() { ...@@ -296,7 +302,6 @@ module.exports = (function() {
} }
var connection = mysql.createConnection(connectionConfig); var connection = mysql.createConnection(connectionConfig);
connection.connect(function(err) { connection.connect(function(err) {
if (err) { if (err) {
switch(err.code) { switch(err.code) {
......
...@@ -64,6 +64,22 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () { ...@@ -64,6 +64,22 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
done() done()
}) })
}) })
it('triggers the error event when using replication', function (done) {
new Sequelize('sequelize', null, null, {
replication: {
read: {
host: 'localhost',
username: 'omg',
password: 'lol'
}
}
}).authenticate()
.complete(function(err, result) {
expect(err).to.not.be.null
done()
})
})
}) })
}) })
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!