From f2709964ae429716097eb3074e67f6d49708ae84 Mon Sep 17 00:00:00 2001 From: Fabien O'Carroll Date: Tue, 5 Nov 2019 17:33:41 +0700 Subject: [PATCH] Added migration for members uuid column no-issue --- .../3.1/5-add-uuid-field-to-members.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 core/server/data/migrations/versions/3.1/5-add-uuid-field-to-members.js diff --git a/core/server/data/migrations/versions/3.1/5-add-uuid-field-to-members.js b/core/server/data/migrations/versions/3.1/5-add-uuid-field-to-members.js new file mode 100644 index 0000000000..df562a97d0 --- /dev/null +++ b/core/server/data/migrations/versions/3.1/5-add-uuid-field-to-members.js @@ -0,0 +1,44 @@ +const common = require('../../../../lib/common'); +const commands = require('../../../schema').commands; + +const createLog = type => msg => common.logging[type](msg); + +function createColumnMigration({table, column, dbIsInCorrectState, operation, operationVerb}) { + return function columnMigrations({transacting}) { + return transacting.schema.hasColumn(table, column) + .then(dbIsInCorrectState) + .then((isInCorrectState) => { + const log = createLog(isInCorrectState ? 'warn' : 'info'); + + log(`${operationVerb} ${table}.${column}`); + + if (!isInCorrectState) { + return operation(table, column, transacting); + } + }); + }; +} + +module.exports.up = createColumnMigration({ + table: 'members', + column: 'uuid', + dbIsInCorrectState(columnExists) { + return columnExists === true; + }, + operation: commands.addColumn, + operationVerb: 'Adding' +}); + +module.exports.down = createColumnMigration({ + table: 'members', + column: 'uuid', + dbIsInCorrectState(columnExists) { + return columnExists === false; + }, + operation: commands.dropColumn, + operationVerb: 'Removing' +}); + +module.exports.config = { + transaction: true +};