All files / projects-dev/apps/mc-api/src/migrations 1626653925349-AddEncountersHeroes.ts

0% Statements 0/121
0% Branches 0/1
0% Functions 0/1
0% Lines 0/121

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122                                                                                                                                                                                                                                                   
import { MigrationInterface, QueryRunner } from "typeorm";

export class AddEncountersHeroes1626653925349 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<void> {
        // eslint-disable-next-line no-secrets/no-secrets
        await queryRunner.query(`
            CREATE TABLE encounters_heroes (
                encounter int(11) NOT NULL,
                hero int(11) NOT NULL,
                PRIMARY KEY(encounter, hero)
            ) ENGINE=InnoDB DEFAULT CHARSET = utf8mb4 COLLATE=utf8mb4_unicode_ci;
        `);

        await queryRunner.query(`
            ALTER TABLE encounters_heroes ADD CONSTRAINT fk_encounters_heroes_encounters FOREIGN KEY (encounter) REFERENCES encounters(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);

        await queryRunner.query(`
            ALTER TABLE encounters_heroes ADD CONSTRAINT fk_encounters_heroes_hero FOREIGN KEY (hero) REFERENCES heroes(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);

        await queryRunner.query(`ALTER TABLE encounters DROP FOREIGN KEY fk_heroes1_encounters`);
        await queryRunner.query(`ALTER TABLE encounters DROP FOREIGN KEY fk_heroes2_encounters`);
        await queryRunner.query(`ALTER TABLE encounters DROP FOREIGN KEY fk_heroes3_encounters`);
        await queryRunner.query(`ALTER TABLE encounters DROP FOREIGN KEY fk_heroes4_encounters`);

        await queryRunner.query(`ALTER TABLE encounters DROP COLUMN hero1`);
        await queryRunner.query(`ALTER TABLE encounters DROP COLUMN hero2`);
        await queryRunner.query(`ALTER TABLE encounters DROP COLUMN hero3`);
        await queryRunner.query(`ALTER TABLE encounters DROP COLUMN hero4`);

        await queryRunner.query(`
            INSERT INTO encounters_heroes VALUES
            (1, 19),
            (1, 9),
            (2, 5),
            (2, 4),
            (3, 2),
            (3, 4),
            (4, 1),
            (4, 10),
            (5, 6),
            (5, 12),
            (6, 5),
            (6, 12),
            (7, 7),
            (7, 10),
            (8, 3),
            (8, 1),
            (9, 11),
            (9, 14),
            (10, 17),
            (10, 16),
            (11, 8),
            (11, 12),
            (12, 8),
            (12, 14),
            (13, 6),
            (13, 19),
            (14, 5),
            (14, 20),
            (15, 1),
            (15, 21),
            (16, 12),
            (16, 20),
            (17, 3),
            (17, 18),
            (18, 13),
            (18, 15),
            (19, 10),
            (20, 3),
            (20, 11),
            (21, 5),
            (21, 17),
            (22, 3),
            (22, 13),
            (23, 7),
            (23, 9),
            (24, 22),
            (24, 14),
            (26, 20),
            (26, 12),
            (27, 8),
            (27, 16),
            (28, 11),
            (28, 2),
            (29, 2),
            (29, 21),
            (30, 15),
            (30, 18),
            (31, 20),
            (31, 12)
        `);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`
            DROP TABLE encounters_heroes
        `);

        await queryRunner.query(`ALTER TABLE encounters ADD COLUMN hero1 int(11) COLLATE utf8mb4_unicode_ci NULL`);
        await queryRunner.query(`ALTER TABLE encounters ADD COLUMN hero2 int(11) COLLATE utf8mb4_unicode_ci NULL`);
        await queryRunner.query(`ALTER TABLE encounters ADD COLUMN hero3 int(11) COLLATE utf8mb4_unicode_ci NULL`);
        await queryRunner.query(`ALTER TABLE encounters ADD COLUMN hero4 int(11) COLLATE utf8mb4_unicode_ci NULL`);

        await queryRunner.query(`
            ALTER TABLE encounters ADD CONSTRAINT fk_heroes1_encounters FOREIGN KEY (hero1) REFERENCES heroes(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);

        await queryRunner.query(`
            ALTER TABLE encounters ADD CONSTRAINT fk_heroes2_encounters FOREIGN KEY (hero2) REFERENCES heroes(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);

        await queryRunner.query(`
            ALTER TABLE encounters ADD CONSTRAINT fk_heroes3_encounters FOREIGN KEY (hero3) REFERENCES heroes(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);
        await queryRunner.query(`
            ALTER TABLE encounters ADD CONSTRAINT fk_heroes4_encounters FOREIGN KEY (hero4) REFERENCES heroes(id) ON DELETE NO ACTION ON UPDATE NO ACTION
        `);
    }
}