import * as Sequelize from 'sequelize' async function up (utils: { transaction: Sequelize.Transaction queryInterface: Sequelize.QueryInterface sequelize: Sequelize.Sequelize db: any }): Promise { const { transaction } = utils { const data = { type: Sequelize.BOOLEAN, defaultValue: null, allowNull: true } await utils.queryInterface.addColumn('videoLiveSession', 'endingProcessed', data, { transaction }) await utils.queryInterface.addColumn('videoLiveSession', 'saveReplay', data, { transaction }) } { const query = `UPDATE "videoLiveSession" SET "saveReplay" = ( SELECT "videoLive"."saveReplay" FROM "videoLive" WHERE "videoLive"."videoId" = "videoLiveSession"."liveVideoId" ) WHERE "videoLiveSession"."liveVideoId" IS NOT NULL` await utils.sequelize.query(query, { transaction }) } { const query = `UPDATE "videoLiveSession" SET "saveReplay" = FALSE WHERE "saveReplay" IS NULL` await utils.sequelize.query(query, { transaction }) } { const query = `UPDATE "videoLiveSession" SET "endingProcessed" = TRUE` await utils.sequelize.query(query, { transaction }) } { const data = { type: Sequelize.BOOLEAN, defaultValue: null, allowNull: false } await utils.queryInterface.changeColumn('videoLiveSession', 'endingProcessed', data, { transaction }) await utils.queryInterface.changeColumn('videoLiveSession', 'saveReplay', data, { transaction }) } } function down (options) { throw new Error('Not implemented.') } export { up, down }