From 635ae3c749de7b723640561b8b7b92d0766bd6a8 Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 3 Jul 2026 15:40:17 +0200 Subject: [PATCH] Fix column names for join tables --- src/database/entities/Message.ts | 56 +++++++++++++++++-- .../1782925307190-NameJoinTableColumns.ts | 33 +++++++++++ 2 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 src/database/migration/postgres/1782925307190-NameJoinTableColumns.ts diff --git a/src/database/entities/Message.ts b/src/database/entities/Message.ts index edcce4948..72d787b40 100644 --- a/src/database/entities/Message.ts +++ b/src/database/entities/Message.ts @@ -139,20 +139,68 @@ export class Message extends BaseClass { @Column({ nullable: true }) mention_everyone?: boolean; - @JoinTable({ name: "message_user_mentions" }) + @JoinTable({ + name: "message_user_mentions", + joinColumn: { + name: "message_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_mentions_message_id", + }, + inverseJoinColumn: { + name: "user_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_mentions_user_id", + }, + }) @ManyToMany(() => User) mentions: User[]; - @JoinTable({ name: "message_role_mentions" }) + @JoinTable({ + name: "message_role_mentions", + joinColumn: { + name: "message_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_role_mentions_message_id", + }, + inverseJoinColumn: { + name: "role_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_role_mentions_role_id", + }, + }) @ManyToMany(() => Role) mention_roles: Role[]; - @JoinTable({ name: "message_channel_mentions" }) + @JoinTable({ + name: "message_channel_mentions", + joinColumn: { + name: "message_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_channel_mentions_message_id", + }, + inverseJoinColumn: { + name: "channel_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_channel_mentions_channel_id", + }, + }) @ManyToMany(() => Channel) @JsonRemoveEmpty mention_channels: Channel[]; - @JoinTable({ name: "message_stickers" }) + @JoinTable({ + name: "message_stickers", + joinColumn: { + name: "message_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_stickers_message_id", + }, + inverseJoinColumn: { + name: "sticker_id", + referencedColumnName: "id", + foreignKeyConstraintName: "FK_message_stickers_sticker_id", + }, + }) @ManyToMany(() => Sticker, { cascade: true, onDelete: "CASCADE" }) @JsonRemoveEmpty sticker_items?: Sticker[]; diff --git a/src/database/migration/postgres/1782925307190-NameJoinTableColumns.ts b/src/database/migration/postgres/1782925307190-NameJoinTableColumns.ts new file mode 100644 index 000000000..45106eea6 --- /dev/null +++ b/src/database/migration/postgres/1782925307190-NameJoinTableColumns.ts @@ -0,0 +1,33 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class NameJoinTableColumns1782925307190 implements MigrationInterface { + name = "NameJoinTableColumns1782925307190"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE message_channel_mentions RENAME COLUMN "messagesId" TO "message_id"`); + await queryRunner.query(`ALTER TABLE message_channel_mentions RENAME COLUMN "channelsId" TO "channel_id"`); + + await queryRunner.query(`ALTER TABLE message_role_mentions RENAME COLUMN "messagesId" TO "message_id"`); + await queryRunner.query(`ALTER TABLE message_role_mentions RENAME COLUMN "rolesId" TO "role_id"`); + + await queryRunner.query(`ALTER TABLE message_stickers RENAME COLUMN "messagesId" TO "message_id"`); + await queryRunner.query(`ALTER TABLE message_stickers RENAME COLUMN "stickersId" TO "sticker_id"`); + + await queryRunner.query(`ALTER TABLE message_user_mentions RENAME COLUMN "messagesId" TO "message_id"`); + await queryRunner.query(`ALTER TABLE message_user_mentions RENAME COLUMN "usersId" TO "user_id"`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE message_channel_mentions RENAME COLUMN "message_id" TO "messagesId"`); + await queryRunner.query(`ALTER TABLE message_channel_mentions RENAME COLUMN "channel_id" TO "channelsId"`); + + await queryRunner.query(`ALTER TABLE message_role_mentions RENAME COLUMN "message_id" TO "messagesId"`); + await queryRunner.query(`ALTER TABLE message_role_mentions RENAME COLUMN "role_id" TO "rolesId"`); + + await queryRunner.query(`ALTER TABLE message_stickers RENAME COLUMN "message_id" TO "messagesId"`); + await queryRunner.query(`ALTER TABLE message_stickers RENAME COLUMN "sticker_id" TO "stickersId"`); + + await queryRunner.query(`ALTER TABLE message_user_mentions RENAME COLUMN "message_id" TO "messagesId"`); + await queryRunner.query(`ALTER TABLE message_user_mentions RENAME COLUMN "user_id" TO "usersId"`); + } +}