parent
18ddc84929
commit
2ba88203f3
|
@ -662,11 +662,11 @@ function mixinMigration(MySQL, mysql) {
|
||||||
//for each field in "keys" object
|
//for each field in "keys" object
|
||||||
for (var key in i.keys) {
|
for (var key in i.keys) {
|
||||||
if (i.keys[key] !== -1) {
|
if (i.keys[key] !== -1) {
|
||||||
indexedColumns.push(key);
|
indexedColumns.push(this.escapeName(key));
|
||||||
} else {
|
} else {
|
||||||
//mysql does not support index sorting Currently
|
//mysql does not support index sorting Currently
|
||||||
//but mysql has added DESC keyword for future support
|
//but mysql has added DESC keyword for future support
|
||||||
indexedColumns.push(key + ' DESC ');
|
indexedColumns.push(this.escapeName(key) + ' DESC ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,56 @@ describe('MySQL connector', function() {
|
||||||
setupAltColNameData();
|
setupAltColNameData();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('escape index names upon automigrate', function() {
|
||||||
|
before (function(done) {
|
||||||
|
var messageSchema = {
|
||||||
|
'name': 'Message',
|
||||||
|
'options': {
|
||||||
|
'idInjection': false,
|
||||||
|
'indexes': {
|
||||||
|
'id_index': {
|
||||||
|
'keys': {
|
||||||
|
'id': 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'from_index': {
|
||||||
|
'keys': {
|
||||||
|
'from': 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'properties': {
|
||||||
|
'id': {
|
||||||
|
'type': 'number',
|
||||||
|
'id': true,
|
||||||
|
'generated': false,
|
||||||
|
},
|
||||||
|
'conversation': {
|
||||||
|
'type': 'string',
|
||||||
|
},
|
||||||
|
'from': {
|
||||||
|
'type': 'number',
|
||||||
|
},
|
||||||
|
'sent': {
|
||||||
|
'type': 'date',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
ds.createModel(messageSchema.name, messageSchema.properties, messageSchema.options);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
it('should escape index names', function(done) {
|
||||||
|
// please note `from` is a keyword in mysql https://dev.mysql.com/doc/refman/5.7/en/keywords.html
|
||||||
|
// hence it needs to be escaped in order for it to work
|
||||||
|
// instead of escaping the special keywords, we escape all index names
|
||||||
|
ds.automigrate('Message', function(err) {
|
||||||
|
assert(!err);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should auto migrate/update tables', function(done) {
|
it('should auto migrate/update tables', function(done) {
|
||||||
var schema_v1 = {
|
var schema_v1 = {
|
||||||
'name': 'CustomerTest',
|
'name': 'CustomerTest',
|
||||||
|
|
Loading…
Reference in New Issue