Ghost/core/server/data/migrations/versions/2.15/1-add-type-column-to-integr...

41 lines
1.4 KiB
JavaScript

const logging = require('../../../../../shared/logging');
const commands = require('../../../schema').commands;
const table = 'integrations';
const newColumnNames = [
'type'
];
function printResult(operation, columnName) {
return `${operation} column ${columnName} in ${table} table`;
}
module.exports.up = (options) => {
const connection = options.connection;
return Promise.map(newColumnNames, (newColumnName) => {
return connection.schema.hasColumn(table, newColumnName)
.then((exists) => {
if (exists) {
logging.warn(printResult('Adding', newColumnName));
return;
}
logging.info(printResult('Adding', newColumnName));
return commands.addColumn(table, newColumnName, connection);
});
});
};
module.exports.down = (options) => {
const connection = options.connection;
return Promise.map(newColumnNames, (newColumnName) => {
return connection.schema.hasColumn(table, newColumnName)
.then((exists) => {
if (!exists) {
logging.warn(printResult('Dropping', newColumnName));
return;
}
logging.info(printResult('Dropping', newColumnName));
return commands.dropColumn(table, newColumnName, connection);
});
});
};