]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/initializers/migrations/0560-user-feed-token.ts
server: serve files from storage/well-known (#5214)
[github/Chocobozzz/PeerTube.git] / server / initializers / migrations / 0560-user-feed-token.ts
1 import * as Sequelize from 'sequelize'
2 import { buildUUID } from '@shared/extra-utils'
3
4 async 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
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)
20 }
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) {
29 const queryUpdate = `UPDATE "user" SET "feedToken" = '${buildUUID()}' WHERE id = ${user.id}`
30 await utils.sequelize.query(queryUpdate)
31 }
32 }
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 }
42 }
43
44 function down (options) {
45 throw new Error('Not implemented.')
46 }
47
48 export {
49 up,
50 down
51 }