From 68d19a0ace01cb7a3550da420d27663e2db1b98d Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Thu, 16 Apr 2020 14:22:27 +0200 Subject: Make sure a report doesn't get deleted upon the deletion of its video --- server/initializers/migrations/0490-abuse-video.ts | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 server/initializers/migrations/0490-abuse-video.ts (limited to 'server/initializers/migrations') diff --git a/server/initializers/migrations/0490-abuse-video.ts b/server/initializers/migrations/0490-abuse-video.ts new file mode 100644 index 000000000..26333feb5 --- /dev/null +++ b/server/initializers/migrations/0490-abuse-video.ts @@ -0,0 +1,28 @@ +import * as Sequelize from 'sequelize' + +async function up (utils: { + transaction: Sequelize.Transaction + queryInterface: Sequelize.QueryInterface + sequelize: Sequelize.Sequelize +}): Promise { + + const deletedVideo = { + type: Sequelize.JSONB, + allowNull: true + } + await utils.queryInterface.addColumn('videoAbuse', 'deletedVideo', deletedVideo) + await utils.sequelize.query(`ALTER TABLE "videoAbsue" ALTER COLUMN "videoId" DROP NOT NULL;`) + await utils.sequelize.query(`ALTER TABLE "videoAbuse" DROP CONSTRAINT IF EXISTS "videoAbuse_videoId_fkey";`) + await utils.sequelize.query(`ALTER TABLE "videoAbuse" ADD CONSTRAINT "videoAbuse_videoId_fkey" + FOREIGN KEY ("videoId") REFERENCES video(id) ON UPDATE CASCADE ON DELETE SET NULL;`) + +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3