Server: make a basic "quick and dirty update" for videos
[oweals/peertube.git] / server / initializers / migrations / 0005-email-pod.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('Pods', 'email', data, { transaction: utils.transaction }).asCallback(function (err) {
20         return callback(err)
21       })
22     },
23
24     function updateWithFakeEmails (callback) {
25       const query = 'UPDATE "Pods" SET "email" = \'dummy@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('Pods', '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 }