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

Commit 1c0a66af by Angelo Paolo Obispo Committed by Jan Aagaard Meier

fixes issue #5808 removeColumn tries to delete nonexistent foreign keys (#5851)

1 parent c8da3c8f
# Future # Future
- [FIXED] Postgres DECIMAL precision. (PostgreSQL) [#4893](https://github.com/sequelize/sequelize/issues/4893) - [FIXED] Postgres DECIMAL precision. (PostgreSQL) [#4893](https://github.com/sequelize/sequelize/issues/4893)
- [FIXED] removeColumn tries to delete non-existant foreign key constraint (mysql) [#5808](https://github.com/sequelize/sequelize/issues/5808)
# 3.23.0 # 3.23.0
- [FIXED] Invalid query generated when using LIKE + ANY [#5736](https://github.com/sequelize/sequelize/issues/5736) - [FIXED] Invalid query generated when using LIKE + ANY [#5736](https://github.com/sequelize/sequelize/issues/5736)
......
...@@ -357,8 +357,11 @@ var QueryGenerator = { ...@@ -357,8 +357,11 @@ var QueryGenerator = {
return [ return [
'SELECT CONSTRAINT_NAME as constraint_name', 'SELECT CONSTRAINT_NAME as constraint_name',
'FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE', 'FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE',
'WHERE TABLE_NAME = ' + wrapSingleQuote(tableName), 'WHERE (REFERENCED_TABLE_NAME = ' + wrapSingleQuote(tableName),
'AND REFERENCED_COLUMN_NAME = ' + wrapSingleQuote(columnName),
') OR (TABLE_NAME = ' + wrapSingleQuote(tableName),
'AND COLUMN_NAME = ' + wrapSingleQuote(columnName), 'AND COLUMN_NAME = ' + wrapSingleQuote(columnName),
')',
].join(' '); ].join(' ');
}, },
......
...@@ -696,7 +696,7 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -696,7 +696,7 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
it('should get a list of foreign keys for the table', function() { it('should get a list of foreign keys for the table', function() {
var sql = this.queryInterface.QueryGenerator.getForeignKeysQuery('hosts', this.sequelize.config.database); var sql = this.queryInterface.QueryGenerator.getForeignKeysQuery('hosts', this.sequelize.config.database);
var self = this;
return this.sequelize.query(sql, {type: this.sequelize.QueryTypes.FOREIGNKEYS}).then(function(fks) { return this.sequelize.query(sql, {type: this.sequelize.QueryTypes.FOREIGNKEYS}).then(function(fks) {
expect(fks).to.have.length(3); expect(fks).to.have.length(3);
var keys = Object.keys(fks[0]), var keys = Object.keys(fks[0]),
...@@ -714,6 +714,18 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() { ...@@ -714,6 +714,18 @@ describe(Support.getTestDialectTeaser('QueryInterface'), function() {
} else { } else {
console.log('This test doesn\'t support ' + dialect); console.log('This test doesn\'t support ' + dialect);
} }
return fks;
}).then(function(fks){
if (dialect === 'mysql') {
return self.sequelize.query(
self.queryInterface.QueryGenerator.getForeignKeyQuery('hosts', 'admin'),
{}
)
.spread(function(fk){
expect(fks[0]).to.deep.eql(fk[0]);
});
}
return;
}); });
}); });
}); });
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!