import * as Sequelize from 'sequelize' import { WEBSERVER } from '../constants' async function up (utils: { transaction: Sequelize.Transaction queryInterface: Sequelize.QueryInterface sequelize: Sequelize.Sequelize }): Promise { { 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 }