diff --git a/core/server/data/migrations/versions/2.13/1-remove-empty-strings.js b/core/server/data/migrations/versions/2.13/1-remove-empty-strings.js index eddaa2d2bc..91088c0b7a 100644 --- a/core/server/data/migrations/versions/2.13/1-remove-empty-strings.js +++ b/core/server/data/migrations/versions/2.13/1-remove-empty-strings.js @@ -1,81 +1,5 @@ const Promise = require('bluebird'); -const common = require('../../../../lib/common'); -const schema = require('../../../schema'); -/* - * [{ - * tableName: 'posts', - * columns: ['custom_excerpt', 'description', 'etc...'] - * }] - * */ -const tablesToUpdate = Object.keys(schema.tables).reduce((tablesToUpdate, tableName) => { - const table = schema.tables[tableName]; - const columns = Object.keys(table).filter((columnName) => { - const column = table[columnName]; - return column.nullable && ['string', 'text'].includes(column.type); - }); - if (!columns.length) { - return tablesToUpdate; - } - return tablesToUpdate.concat({ - tableName, - columns - }); -}, []); +module.exports.up = () => Promise.resolve(); -const createReplace = (connection, from, to) => (tableName, columnName) => { - return connection.schema.hasTable(tableName) - .then((tableExists) => { - if (!tableExists) { - common.logging.warn( - `Table ${tableName} does not exist` - ); - return; - } - return connection.schema.hasColumn(tableName, columnName) - .then((columnExists) => { - if (!columnExists) { - common.logging.warn( - `Table '${tableName}' does not have column '${columnName}'` - ); - return; - } - - common.logging.info( - `Updating ${tableName}, setting '${from}' in ${columnName} to '${to}'` - ); - - return connection(tableName) - .where(columnName, from) - .update(columnName, to); - }); - }); -}; - -module.exports.up = ({transacting}) => { - const replaceEmptyStringWithNull = createReplace(transacting, '', null); - - return Promise.all( - tablesToUpdate.map(({tableName, columns}) => Promise.all( - columns.map( - columnName => replaceEmptyStringWithNull(tableName, columnName) - ) - )) - ); -}; - -module.exports.down = ({connection}) => { - const replaceNullWithEmptyString = createReplace(connection, null, ''); - - return Promise.all( - tablesToUpdate.map(({tableName, columns}) => Promise.all( - columns.map( - columnName => replaceNullWithEmptyString(tableName, columnName) - ) - )) - ); -}; - -module.exports.config = { - transaction: true -}; +module.exports.down = () => Promise.resolve();