From 5804c0db337ecf492fc61b98a3de7b730a0d8ce3 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Sat, 18 Feb 2017 11:56:28 +0100 Subject: Server: fix migration scripts --- server/initializers/migrations/0005-email-pod.js | 35 +++++++++++++++---- server/initializers/migrations/0010-email-user.js | 41 +++++++++++++++++++++++ 2 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 server/initializers/migrations/0010-email-user.js (limited to 'server/initializers/migrations') diff --git a/server/initializers/migrations/0005-email-pod.js b/server/initializers/migrations/0005-email-pod.js index d90b674a1..9bbb354bf 100644 --- a/server/initializers/migrations/0005-email-pod.js +++ b/server/initializers/migrations/0005-email-pod.js @@ -1,18 +1,39 @@ -/* - This is just an example. -*/ +'use strict' -// utils = { transaction, queryInterface } -exports.up = function (utils, callback) { +const waterfall = require('async/waterfall') + +// utils = { transaction, queryInterface, sequelize, Sequelize } +exports.up = function (utils, finalCallback) { const q = utils.queryInterface const Sequelize = utils.Sequelize const data = { type: Sequelize.STRING(400), - allowNull: false + allowNull: false, + defaultValue: '' } - q.addColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(callback) + waterfall([ + + function addEmailColumn (callback) { + q.addColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(function (err) { + return callback(err) + }) + }, + + function updateWithFakeEmails (callback) { + const query = 'UPDATE "Pods" SET "email" = \'dummy@example.com\'' + utils.sequelize.query(query, { transaction: utils.transaction }).asCallback(function (err) { + return callback(err) + }) + }, + + function nullOnDefault (callback) { + data.defaultValue = null + + q.changeColumn('Pods', 'email', data, { transaction: utils.transaction }).asCallback(callback) + } + ], finalCallback) } exports.down = function (options, callback) { diff --git a/server/initializers/migrations/0010-email-user.js b/server/initializers/migrations/0010-email-user.js new file mode 100644 index 000000000..1ab27133a --- /dev/null +++ b/server/initializers/migrations/0010-email-user.js @@ -0,0 +1,41 @@ +'use strict' + +const waterfall = require('async/waterfall') + +// utils = { transaction, queryInterface, sequelize, Sequelize } +exports.up = function (utils, finalCallback) { + const q = utils.queryInterface + const Sequelize = utils.Sequelize + + const data = { + type: Sequelize.STRING(400), + allowNull: false, + defaultValue: '' + } + + waterfall([ + + function addEmailColumn (callback) { + q.addColumn('Users', 'email', data, { transaction: utils.transaction }).asCallback(function (err) { + return callback(err) + }) + }, + + function updateWithFakeEmails (callback) { + const query = 'UPDATE "Users" SET "email" = CONCAT("username", \'@example.com\')' + utils.sequelize.query(query, { transaction: utils.transaction }).asCallback(function (err) { + return callback(err) + }) + }, + + function nullOnDefault (callback) { + data.defaultValue = null + + q.changeColumn('Users', 'email', data, { transaction: utils.transaction }).asCallback(callback) + } + ], finalCallback) +} + +exports.down = function (options, callback) { + throw new Error('Not implemented.') +} -- cgit v1.2.3