52 lines
2.8 KiB
TypeScript
52 lines
2.8 KiB
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
export class addRating1574452206367 implements MigrationInterface {
|
|
name = 'addRating1574452206367';
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<any> {
|
|
await queryRunner.query(
|
|
`CREATE TABLE "temporary_copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "favorited" boolean NOT NULL DEFAULT (0), "isDigital" boolean NOT NULL, "originalId" integer NOT NULL, "rating" integer, CONSTRAINT "FK_e8ce0011cf0a8b9fdc8ad908a44" FOREIGN KEY ("originalId") REFERENCES "book" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(
|
|
`INSERT INTO "temporary_copy"("id", "favorited", "isDigital", "originalId") SELECT "id", "favorited", "isDigital", "originalId" FROM "copy"`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(`DROP TABLE "copy"`, undefined);
|
|
await queryRunner.query(`ALTER TABLE "temporary_copy" RENAME TO "copy"`, undefined);
|
|
await queryRunner.query(
|
|
`CREATE TABLE "temporary_book" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "names" text NOT NULL, "rating" integer)`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(
|
|
`INSERT INTO "temporary_book"("id", "nameCanonical", "names") SELECT "id", "nameCanonical", "names" FROM "book"`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(`DROP TABLE "book"`, undefined);
|
|
await queryRunner.query(`ALTER TABLE "temporary_book" RENAME TO "book"`, undefined);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<any> {
|
|
await queryRunner.query(`ALTER TABLE "book" RENAME TO "temporary_book"`, undefined);
|
|
await queryRunner.query(
|
|
`CREATE TABLE "book" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "names" text NOT NULL)`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(
|
|
`INSERT INTO "book"("id", "nameCanonical", "names") SELECT "id", "nameCanonical", "names" FROM "temporary_book"`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(`DROP TABLE "temporary_book"`, undefined);
|
|
await queryRunner.query(`ALTER TABLE "copy" RENAME TO "temporary_copy"`, undefined);
|
|
await queryRunner.query(
|
|
`CREATE TABLE "copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "favorited" boolean NOT NULL DEFAULT (0), "isDigital" boolean NOT NULL, "originalId" integer NOT NULL, CONSTRAINT "FK_e8ce0011cf0a8b9fdc8ad908a44" FOREIGN KEY ("originalId") REFERENCES "book" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(
|
|
`INSERT INTO "copy"("id", "favorited", "isDigital", "originalId") SELECT "id", "favorited", "isDigital", "originalId" FROM "temporary_copy"`,
|
|
undefined
|
|
);
|
|
await queryRunner.query(`DROP TABLE "temporary_copy"`, undefined);
|
|
}
|
|
}
|