Autoupdate mysql.columnName bug fix

This commit is contained in:
Ron Lloyd 2016-08-28 23:08:42 -06:00
parent 0de8dc7c97
commit a96d61fa9f
1 changed files with 20 additions and 4 deletions

View File

@ -142,9 +142,10 @@ function mixinMigration(MySQL, mysql) {
propNames.forEach(function(propName) {
if (m.properties[propName] && self.id(model, propName)) return;
var found;
var colName = expectedColName(propName);
if (actualFields) {
actualFields.forEach(function(f) {
if (f.Field === propName) {
if (f.Field === colName) {
found = f;
}
});
@ -161,9 +162,12 @@ function mixinMigration(MySQL, mysql) {
// drop columns
if (actualFields) {
actualFields.forEach(function(f) {
var notFound = !~propNames.indexOf(f.Field);
if (m.properties[f.Field] && self.id(model, f.Field)) return;
if (notFound || !m.properties[f.Field]) {
var colNames = propNames.map(expectedColName);
var index = colNames.indexOf(f.Field);
var propName = index >= 0 ? propNames[index] : f.Field;
var notFound = !~index;
if (m.properties[propName] && self.id(model, propName)) return;
if (notFound || !m.properties[propName]) {
sql.push('DROP COLUMN ' + self.client.escapeId(f.Field));
}
});
@ -329,6 +333,18 @@ function mixinMigration(MySQL, mysql) {
}
return false;
}
function expectedColName(propName) {
var mysql = m.properties[propName].mysql;
if (typeof mysql === 'undefined') {
return propName;
}
var colName = mysql.columnName;
if (typeof colName === 'undefined') {
return propName;
}
return colName;
}
};
MySQL.prototype.buildColumnDefinitions =