From c61e6cd255b0208b4d7796403162010227dffb22 Mon Sep 17 00:00:00 2001 From: naskya Date: Mon, 18 Mar 2024 01:01:48 +0900 Subject: [PATCH] fix (backend): incorrect database indices (renote_mute & reply_mute) --- docs/downgrade.sql | 12 ++++ .../1710690239308-fix-muting-indices.ts | 57 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 packages/backend/src/migration/1710690239308-fix-muting-indices.ts diff --git a/docs/downgrade.sql b/docs/downgrade.sql index 149e82fafe..a96d8c49db 100644 --- a/docs/downgrade.sql +++ b/docs/downgrade.sql @@ -1,6 +1,7 @@ BEGIN; DELETE FROM "migrations" WHERE name IN ( + 'FixMutingIndices1710690239308', 'RemoveMentionedUsersColumn1710688552234', 'NoteFile1710304584214', 'RenameMetaColumns1705944717480', @@ -18,6 +19,17 @@ DELETE FROM "migrations" WHERE name IN ( 'RemoveNativeUtilsMigration1705877093218' ); +-- fix-muting-indices +DROP INDEX "IDX_renote_muting_createdAt"; +DROP INDEX "IDX_renote_muting_muteeId"; +DROP INDEX "IDX_renote_muting_muterId"; +DROP INDEX "IDX_reply_muting_createdAt"; +DROP INDEX "IDX_reply_muting_muteeId"; +DROP INDEX "IDX_reply_muting_muterId"; +CREATE INDEX "IDX_renote_muting_createdAt" ON "muting" ("createdAt"); +CREATE INDEX "IDX_renote_muting_muteeId" ON "muting" ("muteeId"); +CREATE INDEX "IDX_renote_muting_muterId" ON "muting" ("muterId"); + -- remove-mentioned-users-column ALTER TABLE "note" ADD "mentionedRemoteUsers" text NOT NULL DEFAULT '[]'::text; CREATE TABLE "temp_mentions_1710688552234" AS diff --git a/packages/backend/src/migration/1710690239308-fix-muting-indices.ts b/packages/backend/src/migration/1710690239308-fix-muting-indices.ts new file mode 100644 index 0000000000..3dc24c2531 --- /dev/null +++ b/packages/backend/src/migration/1710690239308-fix-muting-indices.ts @@ -0,0 +1,57 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class FixMutingIndices1710690239308 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_renote_muting_createdAt"`); + await queryRunner.query(`DROP INDEX "IDX_renote_muting_muteeId"`); + await queryRunner.query(`DROP INDEX "IDX_renote_muting_muterId"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_createdAt"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_muteeId"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_muterId"`); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_createdAt" ON "renote_muting" ("createdAt")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_muteeId" ON "renote_muting" ("muteeId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_muterId" ON "renote_muting" ("muterId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_createdAt" ON "reply_muting" ("createdAt")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_muteeId" ON "reply_muting" ("muteeId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_muterId" ON "reply_muting" ("muterId")`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_renote_muting_createdAt"`); + await queryRunner.query(`DROP INDEX "IDX_renote_muting_muteeId"`); + await queryRunner.query(`DROP INDEX "IDX_renote_muting_muterId"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_createdAt"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_muteeId"`); + await queryRunner.query(`DROP INDEX "IDX_reply_muting_muterId"`); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_createdAt" ON "muting" ("createdAt")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_muteeId" ON "muting" ("muteeId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_renote_muting_muterId" ON "muting" ("muterId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_createdAt" ON "muting" ("createdAt")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_muteeId" ON "muting" ("muteeId")`, + ); + await queryRunner.query( + `CREATE INDEX "IDX_reply_muting_muterId" ON "muting" ("muterId")`, + ); + } +}