iceshrimp/packages/backend/src/migration/1585385921215-custom-notification.ts

152 lines
5 KiB
TypeScript

import { MigrationInterface, QueryRunner } from "typeorm";
export class customNotification1585385921215 implements MigrationInterface {
constructor() {
this.name = "customNotification1585385921215";
}
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "notification" ADD "customBody" character varying(2048)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD "customHeader" character varying(256)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`,
undefined,
);
await queryRunner.query(
`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`,
undefined,
);
await queryRunner.query(
`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`,
undefined,
);
await queryRunner.query(
`DROP TYPE "notification_type_enum_old"`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`,
undefined,
);
await queryRunner.query(
`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `,
undefined,
);
await queryRunner.query(
`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `,
undefined,
);
await queryRunner.query(
`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `,
undefined,
);
await queryRunner.query(
`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."type" IS ''`,
undefined,
);
await queryRunner.query(
`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`,
undefined,
);
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
await queryRunner.query(
`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."notifierId" IS ''`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "customIcon"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "customHeader"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "customBody"`,
undefined,
);
}
}