Add plugin table migration table
[oweals/peertube.git] / server / initializers / migrations / 0070-user-video-quota.ts
1 import * as Sequelize from 'sequelize'
2 import * as Promise from 'bluebird'
3 import { Migration } from '../../models/migrations'
4
5 function up (utils: {
6   transaction: Sequelize.Transaction,
7   queryInterface: Sequelize.QueryInterface,
8   sequelize: Sequelize.Sequelize,
9   db: any
10 }): Promise<void> {
11   const q = utils.queryInterface
12
13   const data = {
14     type: Sequelize.BIGINT,
15     allowNull: false,
16     defaultValue: -1
17   } as Migration.BigInteger
18
19   return q.addColumn('Users', 'videoQuota', data)
20     .then(() => {
21       data.defaultValue = null
22       return q.changeColumn('Users', 'videoQuota', data)
23     })
24 }
25
26 function down (options) {
27   throw new Error('Not implemented.')
28 }
29
30 export {
31   up,
32   down
33 }