diff options
Diffstat (limited to 'server/initializers/migrations/0010-email-user.js')
-rw-r--r-- | server/initializers/migrations/0010-email-user.js | 41 |
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 | |||
3 | const waterfall = require('async/waterfall') | ||
4 | |||
5 | // utils = { transaction, queryInterface, sequelize, Sequelize } | ||
6 | exports.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 | |||
39 | exports.down = function (options, callback) { | ||
40 | throw new Error('Not implemented.') | ||
41 | } | ||