Autoupdate mysql.columnName bug fix
This commit is contained in:
parent
0de8dc7c97
commit
a96d61fa9f
|
@ -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 =
|
||||
|
|
Loading…
Reference in New Issue