12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import * as Sequelize from 'sequelize'
- import { WEBSERVER } from '../constants'
- async function up (utils: {
- transaction: Sequelize.Transaction
- queryInterface: Sequelize.QueryInterface
- sequelize: Sequelize.Sequelize
- }): Promise<void> {
- {
- const field = {
- type: Sequelize.STRING,
- allowNull: true
- }
- await utils.queryInterface.changeColumn('videoPlaylistElement', 'url', field)
- }
- {
- await utils.sequelize.query('DROP INDEX IF EXISTS video_playlist_element_video_playlist_id_video_id;')
- }
- {
- const selectPlaylistUUID = 'SELECT "uuid" FROM "videoPlaylist" WHERE "id" = "videoPlaylistElement"."videoPlaylistId"'
- const url = `'${WEBSERVER.URL}' || '/video-playlists/' || (${selectPlaylistUUID}) || '/videos/' || "videoPlaylistElement"."id"`
- const query = `
- UPDATE "videoPlaylistElement" SET "url" = ${url} WHERE id IN (
- SELECT "videoPlaylistElement"."id" FROM "videoPlaylistElement"
- INNER JOIN "videoPlaylist" ON "videoPlaylist".id = "videoPlaylistElement"."videoPlaylistId"
- INNER JOIN account ON account.id = "videoPlaylist"."ownerAccountId"
- INNER JOIN actor ON actor.id = account."actorId"
- WHERE actor."serverId" IS NULL
- )`
- await utils.sequelize.query(query)
- }
- }
- function down (options) {
- throw new Error('Not implemented.')
- }
- export {
- up,
- down
- }
|