Merge branch 'release/2.1.0' into develop
[oweals/peertube.git] / server / initializers / migrations / 0210-video-language.ts
1 import * as Sequelize from 'sequelize'
2 import { CONSTRAINTS_FIELDS } from '../constants'
3
4 async function up (utils: {
5   transaction: Sequelize.Transaction
6   queryInterface: Sequelize.QueryInterface
7   sequelize: Sequelize.Sequelize
8 }): Promise<void> {
9
10   {
11     await utils.queryInterface.renameColumn('video', 'language', 'oldLanguage')
12   }
13
14   {
15     const data = {
16       type: Sequelize.STRING(CONSTRAINTS_FIELDS.VIDEOS.LANGUAGE.max),
17       allowNull: true,
18       defaultValue: null
19     }
20     await utils.queryInterface.addColumn('video', 'language', data)
21   }
22
23   {
24     const languages = [
25       {
26         oldLanguage: 1,
27         newLanguage: 'en'
28       },
29       {
30         oldLanguage: 2,
31         newLanguage: 'es'
32       },
33       {
34         oldLanguage: 3,
35         newLanguage: 'zh'
36       },
37       {
38         oldLanguage: 4,
39         newLanguage: 'hi'
40       },
41       {
42         oldLanguage: 5,
43         newLanguage: 'ar'
44       },
45       {
46         oldLanguage: 6,
47         newLanguage: 'pt'
48       },
49       {
50         oldLanguage: 7,
51         newLanguage: 'bn'
52       },
53       {
54         oldLanguage: 8,
55         newLanguage: 'ru'
56       },
57       {
58         oldLanguage: 9,
59         newLanguage: 'ja'
60       },
61       {
62         oldLanguage: 10,
63         newLanguage: 'pa'
64       },
65       {
66         oldLanguage: 11,
67         newLanguage: 'de'
68       },
69       {
70         oldLanguage: 12,
71         newLanguage: 'ko'
72       },
73       {
74         oldLanguage: 13,
75         newLanguage: 'fr'
76       },
77       {
78         oldLanguage: 14,
79         newLanguage: 'it'
80       },
81       {
82         oldLanguage: 1000,
83         newLanguage: 'sgn'
84       },
85       {
86         oldLanguage: 1001,
87         newLanguage: 'ase'
88       },
89       {
90         oldLanguage: 1002,
91         newLanguage: 'sdl'
92       },
93       {
94         oldLanguage: 1003,
95         newLanguage: 'bfi'
96       },
97       {
98         oldLanguage: 1004,
99         newLanguage: 'bzs'
100       },
101       {
102         oldLanguage: 1005,
103         newLanguage: 'csl'
104       },
105       {
106         oldLanguage: 1006,
107         newLanguage: 'cse'
108       },
109       {
110         oldLanguage: 1007,
111         newLanguage: 'dsl'
112       },
113       {
114         oldLanguage: 1008,
115         newLanguage: 'fsl'
116       },
117       {
118         oldLanguage: 1009,
119         newLanguage: 'gsg'
120       },
121       {
122         oldLanguage: 1010,
123         newLanguage: 'pks'
124       },
125       {
126         oldLanguage: 1011,
127         newLanguage: 'jsl'
128       },
129       {
130         oldLanguage: 1012,
131         newLanguage: 'sfs'
132       },
133       {
134         oldLanguage: 1013,
135         newLanguage: 'swl'
136       },
137       {
138         oldLanguage: 1014,
139         newLanguage: 'rsl'
140       }
141     ]
142
143     for (const language of languages) {
144       const query = 'UPDATE "video" SET "language" = \'' + language.newLanguage + '\' WHERE "oldLanguage" = ' + language.oldLanguage
145       await utils.sequelize.query(query)
146     }
147   }
148
149   {
150     await utils.queryInterface.removeColumn('video', 'oldLanguage')
151   }
152
153 }
154
155 function down (options) {
156   throw new Error('Not implemented.')
157 }
158
159 export {
160   up,
161   down
162 }