diff --git a/src/migrations/1550409894008-FixEmojiIndexInReactionRoles.ts b/src/migrations/1550409894008-FixEmojiIndexInReactionRoles.ts new file mode 100644 index 00000000..077c004e --- /dev/null +++ b/src/migrations/1550409894008-FixEmojiIndexInReactionRoles.ts @@ -0,0 +1,19 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class FixEmojiIndexInReactionRoles1550409894008 implements MigrationInterface { + public async up(queryRunner: QueryRunner): Promise<any> { + // In utf8mb4_swedish_ci, different native emojis are counted as the same char for indexes, which means we can't + // have multiple native emojis on a single message since the emoji field is part of the primary key + await queryRunner.query(` + ALTER TABLE \`reaction_roles\` + CHANGE COLUMN \`emoji\` \`emoji\` VARCHAR(64) NOT NULL COLLATE 'utf8mb4_bin' AFTER \`message_id\` + `); + } + + public async down(queryRunner: QueryRunner): Promise<any> { + await queryRunner.query(` + ALTER TABLE \`reaction_roles\` + CHANGE COLUMN \`emoji\` \`emoji\` VARCHAR(64) NOT NULL AFTER \`message_id\` + `); + } +}