]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/initializers/migrations/0560-user-feed-token.ts
Merge branch 'release/4.3.0' into develop
[github/Chocobozzz/PeerTube.git] / server / initializers / migrations / 0560-user-feed-token.ts
CommitLineData
afff310e 1import * as Sequelize from 'sequelize'
0628157f 2import { buildUUID } from '@shared/extra-utils'
afff310e
RK
3
4async function up (utils: {
5 transaction: Sequelize.Transaction
6 queryInterface: Sequelize.QueryInterface
7 sequelize: Sequelize.Sequelize
8 db: any
9}): Promise<void> {
10 const q = utils.queryInterface
11
18490b07
C
12 {
13 // Create uuid column for users
14 const userFeedTokenUUID = {
15 type: Sequelize.UUID,
16 defaultValue: Sequelize.UUIDV4,
17 allowNull: true
18 }
19 await q.addColumn('user', 'feedToken', userFeedTokenUUID)
afff310e 20 }
afff310e
RK
21
22 // Set UUID to previous users
23 {
24 const query = 'SELECT * FROM "user" WHERE "feedToken" IS NULL'
25 const options = { type: Sequelize.QueryTypes.SELECT as Sequelize.QueryTypes.SELECT }
26 const users = await utils.sequelize.query<any>(query, options)
27
28 for (const user of users) {
d4a8e7a6 29 const queryUpdate = `UPDATE "user" SET "feedToken" = '${buildUUID()}' WHERE id = ${user.id}`
afff310e
RK
30 await utils.sequelize.query(queryUpdate)
31 }
32 }
18490b07
C
33
34 {
35 const userFeedTokenUUID = {
36 type: Sequelize.UUID,
37 defaultValue: Sequelize.UUIDV4,
38 allowNull: false
39 }
40 await q.changeColumn('user', 'feedToken', userFeedTokenUUID)
41 }
afff310e
RK
42}
43
44function down (options) {
45 throw new Error('Not implemented.')
46}
47
48export {
49 up,
50 down
51}