Fix video channel description/support max length
[oweals/peertube.git] / server / initializers / migrations / 0010-email-user.ts
1 import * as Sequelize from 'sequelize'
2 import * as Promise from 'bluebird'
3
4 function up (utils: {
5   transaction: Sequelize.Transaction,
6   queryInterface: Sequelize.QueryInterface,
7   sequelize: Sequelize.Sequelize
8 }): Promise<void> {
9   const q = utils.queryInterface
10
11   const data = {
12     type: Sequelize.STRING(400),
13     allowNull: false,
14     defaultValue: ''
15   }
16   return q.addColumn('Users', 'email', data)
17     .then(() => {
18       const query = 'UPDATE "Users" SET "email" = CONCAT("username", \'@example.com\')'
19       return utils.sequelize.query(query, { transaction: utils.transaction })
20     })
21     .then(() => {
22       data.defaultValue = null
23
24       return q.changeColumn('Users', 'email', data)
25     })
26 }
27
28 function down (options) {
29   throw new Error('Not implemented.')
30 }
31
32 export {
33   up,
34   down
35 }