fix: enable migration for enum property
Signed-off-by: Muhammad Aaqil <aaqilcs102@gmail.com>
This commit is contained in:
parent
8812d51862
commit
aa62346c40
|
@ -770,10 +770,21 @@ function mixinMigration(MySQL, mysql) {
|
|||
const colLength = columnMetadata && columnMetadata.dataLength || prop.length || prop.limit;
|
||||
const colPrecision = columnMetadata && columnMetadata.dataPrecision;
|
||||
const colScale = columnMetadata && columnMetadata.dataScale;
|
||||
let enumList = '';
|
||||
if (colType && colType === 'ENUM') {
|
||||
if (prop.jsonSchema && prop.jsonSchema.enum) {
|
||||
prop.jsonSchema.enum.forEach(item => {
|
||||
enumList += `'${item}',`;
|
||||
});
|
||||
// remove trailing comma
|
||||
enumList = enumList.substring(0, enumList.length - 1);
|
||||
}
|
||||
}
|
||||
// info on setting column specific properties
|
||||
// i.e dataLength, dataPrecision, dataScale
|
||||
// https://loopback.io/doc/en/lb3/Model-definition-JSON-file.html
|
||||
if (colType) {
|
||||
if (colType === 'ENUM') return colType + '(' + enumList + ')';
|
||||
if (colLength) return colType + '(' + colLength + ')';
|
||||
if (colPrecision && colScale) return colType + '(' + colPrecision + ',' + colScale + ')';
|
||||
if (colPrecision) return colType + '(' + colPrecision + ')';
|
||||
|
|
|
@ -85,6 +85,13 @@ describe('migrations', function() {
|
|||
Key: '',
|
||||
Default: null,
|
||||
Extra: ''},
|
||||
typings: {
|
||||
Field: 'typings',
|
||||
Type: "enum('A','B')",
|
||||
Null: 'YES',
|
||||
Key: '',
|
||||
Default: null,
|
||||
Extra: ''},
|
||||
});
|
||||
done();
|
||||
});
|
||||
|
@ -548,9 +555,10 @@ function setup(done) {
|
|||
require('./init.js');
|
||||
|
||||
db = global.getSchema();
|
||||
|
||||
const customType = db.EnumFactory('A', 'B');
|
||||
UserData = db.define('UserData', {
|
||||
email: {type: String, null: false, index: true},
|
||||
typings: {type: customType},
|
||||
name: String,
|
||||
bio: Schema.Text,
|
||||
birthDate: Date,
|
||||
|
|
Loading…
Reference in New Issue