import { MigrationInterface, QueryRunner } from 'typeorm'; export class addRating1574452206367 implements MigrationInterface { name = 'addRating1574452206367'; public async up(queryRunner: QueryRunner): Promise { 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 { 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); } }