Merge branch 'release/2.1.0' into develop
[oweals/peertube.git] / server / initializers / migrations / 0295-video-file-extname.ts
1 import * as Sequelize from 'sequelize'
2
3 async function up (utils: {
4   transaction: Sequelize.Transaction
5   queryInterface: Sequelize.QueryInterface
6   sequelize: Sequelize.Sequelize
7   db: any
8 }): Promise<void> {
9   {
10     await utils.queryInterface.renameColumn('videoFile', 'extname', 'extname_old')
11   }
12
13   {
14     const data = {
15       type: Sequelize.STRING,
16       defaultValue: null,
17       allowNull: true
18     }
19
20     await utils.queryInterface.addColumn('videoFile', 'extname', data)
21   }
22
23   {
24     const query = 'UPDATE "videoFile" SET "extname" = "extname_old"::text'
25     await utils.sequelize.query(query)
26   }
27
28   {
29     const data = {
30       type: Sequelize.STRING,
31       defaultValue: null,
32       allowNull: false
33     }
34     await utils.queryInterface.changeColumn('videoFile', 'extname', data)
35   }
36
37   {
38     await utils.queryInterface.removeColumn('videoFile', 'extname_old')
39   }
40 }
41
42 function down (options) {
43   throw new Error('Not implemented.')
44 }
45
46 export {
47   up,
48   down
49 }