aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/initializers/migrations/0010-email-user.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/initializers/migrations/0010-email-user.js')
-rw-r--r--server/initializers/migrations/0010-email-user.js41
1 files changed, 41 insertions, 0 deletions
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 @@
1'use strict'
2
3const waterfall = require('async/waterfall')
4
5// utils = { transaction, queryInterface, sequelize, Sequelize }
6exports.up = function (utils, finalCallback) {
7 const q = utils.queryInterface
8 const Sequelize = utils.Sequelize
9
10 const data = {
11 type: Sequelize.STRING(400),
12 allowNull: false,
13 defaultValue: ''
14 }
15
16 waterfall([
17
18 function addEmailColumn (callback) {
19 q.addColumn('Users', 'email', data, { transaction: utils.transaction }).asCallback(function (err) {
20 return callback(err)
21 })
22 },
23
24 function updateWithFakeEmails (callback) {
25 const query = 'UPDATE "Users" SET "email" = CONCAT("username", \'@example.com\')'
26 utils.sequelize.query(query, { transaction: utils.transaction }).asCallback(function (err) {
27 return callback(err)
28 })
29 },
30
31 function nullOnDefault (callback) {
32 data.defaultValue = null
33
34 q.changeColumn('Users', 'email', data, { transaction: utils.transaction }).asCallback(callback)
35 }
36 ], finalCallback)
37}
38
39exports.down = function (options, callback) {
40 throw new Error('Not implemented.')
41}