From d83660ee309990aa8fbd8dff63f3051c835613c0 Mon Sep 17 00:00:00 2001 From: Xymorot Date: Sun, 1 Dec 2019 15:12:41 +0100 Subject: [PATCH] remove: remove rateable trait from book entity --- src/main/entities/library/book.ts | 3 +- .../1575209413511-make_books_unrateable.ts | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 src/main/migrations/library/1575209413511-make_books_unrateable.ts diff --git a/src/main/entities/library/book.ts b/src/main/entities/library/book.ts index 642340a..833fd90 100644 --- a/src/main/entities/library/book.ts +++ b/src/main/entities/library/book.ts @@ -2,14 +2,13 @@ import { Entity, JoinTable, ManyToMany, OneToMany } from 'typeorm'; import { BaseEntity } from '../base-entity'; import { Author } from './author'; import { MultiName, MultiNamed } from './base/multi-named'; -import { Rateable } from './base/rateable'; import { Character } from './character'; import { Copy } from './copy'; import { Fiction } from './fiction'; import { Tag } from './tag'; @Entity() -export class Book extends Rateable(MultiNamed(BaseEntity, 'BookMultiName')) { +export class Book extends MultiNamed(BaseEntity, 'BookMultiName') { @OneToMany( () => Copy, (copy: Copy) => copy.original diff --git a/src/main/migrations/library/1575209413511-make_books_unrateable.ts b/src/main/migrations/library/1575209413511-make_books_unrateable.ts new file mode 100644 index 0000000..dc06dac --- /dev/null +++ b/src/main/migrations/library/1575209413511-make_books_unrateable.ts @@ -0,0 +1,51 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class makeBooksUnrateable1575209413511 implements MigrationInterface { + name = 'makeBooksUnrateable1575209413511'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TABLE "temporary_book" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "rating" integer, CONSTRAINT "CHK_bbef8dbd3571ec559f7a980fc5" CHECK ((LENGTH(nameCanonical) > 0)))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_book"("id", "nameCanonical", "rating") SELECT "id", "nameCanonical", "rating" FROM "book"`, + undefined + ); + await queryRunner.query(`DROP TABLE "book"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_book" RENAME TO "book"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_book" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, CONSTRAINT "CHK_bbef8dbd3571ec559f7a980fc5" CHECK ((LENGTH(nameCanonical) > 0)))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_book"("id", "nameCanonical") SELECT "id", "nameCanonical" 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, "rating" integer, CONSTRAINT "CHK_bbef8dbd3571ec559f7a980fc5" CHECK ((LENGTH(nameCanonical) > 0)))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "book"("id", "nameCanonical") SELECT "id", "nameCanonical" FROM "temporary_book"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_book"`, undefined); + 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, "rating" integer, CONSTRAINT "CHK_bbef8dbd3571ec559f7a980fc5" CHECK ((LENGTH(nameCanonical) > 0)), CONSTRAINT "CHK_62ebe0be1f2d31406118960aa5" CHECK ((rating >= 0 AND rating <= 9007199254740991)))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "book"("id", "nameCanonical", "rating") SELECT "id", "nameCanonical", "rating" FROM "temporary_book"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_book"`, undefined); + } +}