iceshrimp-161sh/packages/backend/src/migration/1655368940105-nsfw-detection.ts
2023-10-13 18:44:25 +02:00

53 lines
1.9 KiB
TypeScript

import { MigrationInterface, QueryRunner } from "typeorm";
export class nsfwDetection1655368940105 implements MigrationInterface {
name = "nsfwDetection1655368940105";
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "drive_file" ADD "forceIsSensitive" boolean NOT NULL DEFAULT false`,
);
await queryRunner.query(
`ALTER TABLE "drive_file" ADD "predictedIsSensitive" boolean NOT NULL DEFAULT false`,
);
await queryRunner.query(
`COMMENT ON COLUMN "drive_file"."predictedIsSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`,
);
await queryRunner.query(
`CREATE TYPE "public"."meta_sensitiveimagedetection_enum" AS ENUM('none', 'all', 'local', 'remote')`,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "sensitiveImageDetection" "public"."meta_sensitiveimagedetection_enum" NOT NULL DEFAULT 'none'`,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "forceIsSensitiveWhenPredicted" boolean NOT NULL DEFAULT true`,
);
await queryRunner.query(
`CREATE INDEX "IDX_fc2d74a6d7d8b11292a851d8f8" ON "drive_file" ("predictedIsSensitive") `,
);
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`DROP INDEX "public"."IDX_fc2d74a6d7d8b11292a851d8f8"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "forceIsSensitiveWhenPredicted"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "sensitiveImageDetection"`,
);
await queryRunner.query(
`DROP TYPE "public"."meta_sensitiveimagedetection_enum"`,
);
await queryRunner.query(
`COMMENT ON COLUMN "drive_file"."predictedIsSensitive" IS 'Whether the DriveFile is NSFW. (predict)'`,
);
await queryRunner.query(
`ALTER TABLE "drive_file" DROP COLUMN "predictedIsSensitive"`,
);
await queryRunner.query(
`ALTER TABLE "drive_file" DROP COLUMN "forceIsSensitive"`,
);
}
}