Server: add licence video attribute
[oweals/peertube.git] / server / initializers / migrations / 0010-email-user.js
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 }