From b202c270bc014c7de5a93db652c9787d45eac7d5 Mon Sep 17 00:00:00 2001 From: Xymorot Date: Tue, 21 Apr 2020 01:07:00 +0200 Subject: [PATCH] fix: add JoinTable annotation to ManyToMany relations in library entities BREAKING CHANGE: this commits deletes the existing migration --- src/main/entities/library/copy.ts | 3 +- src/main/entities/library/tag.ts | 3 +- src/main/entities/library/work-author.ts | 3 +- src/main/entities/library/work-character.ts | 5 +- src/main/entities/library/work.ts | 4 +- src/main/entities/library/world-character.ts | 3 +- src/main/entities/library/world.ts | 4 +- .../1586482961027-initial_migration.ts | 539 -------- .../1587423043395-initial_migration.ts | 1186 +++++++++++++++++ 9 files changed, 1204 insertions(+), 546 deletions(-) delete mode 100644 src/main/migrations/library/1586482961027-initial_migration.ts create mode 100644 src/main/migrations/library/1587423043395-initial_migration.ts diff --git a/src/main/entities/library/copy.ts b/src/main/entities/library/copy.ts index 9a9b1a7..887ba88 100644 --- a/src/main/entities/library/copy.ts +++ b/src/main/entities/library/copy.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Source } from './source'; import { Work } from './work'; @@ -27,6 +27,7 @@ export class Copy implements IIdentifiableEntity { * where to find this specific copy */ @ManyToMany(() => Source, (source: Source) => source.copies) + @JoinTable() public sources: Promise; /** diff --git a/src/main/entities/library/tag.ts b/src/main/entities/library/tag.ts index 1d944a7..88f0e38 100644 --- a/src/main/entities/library/tag.ts +++ b/src/main/entities/library/tag.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { CharacterTag } from './character-tag'; import { InteractionTag } from './interaction-tag'; import { TagName } from './tag-name'; @@ -42,6 +42,7 @@ export class Tag implements IIdentifiableEntity, IMultiNamedEntity, IDescribable public interactionTags: Promise; @ManyToMany(() => Tag, (tag: Tag) => tag.children) + @JoinTable() public parents: Promise; @ManyToMany(() => Tag, (tag: Tag) => tag.parents) diff --git a/src/main/entities/library/work-author.ts b/src/main/entities/library/work-author.ts index aabf8f1..700c9c6 100644 --- a/src/main/entities/library/work-author.ts +++ b/src/main/entities/library/work-author.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'; import { Author } from './author'; import { AuthorRole } from './author-role'; import { Work } from './work'; @@ -25,6 +25,7 @@ export class WorkAuthor implements IIdentifiableEntity, IOrderableEntity { * the roles of the author in the work */ @ManyToMany(() => AuthorRole, (authorRole: AuthorRole) => authorRole.workAuthors) + @JoinTable() public authorRoles: Promise; /** diff --git a/src/main/entities/library/work-character.ts b/src/main/entities/library/work-character.ts index a58de52..982689e 100644 --- a/src/main/entities/library/work-character.ts +++ b/src/main/entities/library/work-character.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { CharacterTag } from './character-tag'; import { InteractionTag } from './interaction-tag'; import { Work } from './work'; @@ -36,12 +36,14 @@ export class WorkCharacter implements IIdentifiableEntity, IMultiNamedEntity { * interaction with other characters as actor */ @ManyToMany(() => InteractionTag, (interactionTag: InteractionTag) => interactionTag.subjectCharacters) + @JoinTable() public interactWith: Promise; /** * interaction with other characters as receiver */ @ManyToMany(() => InteractionTag, (interactionTag: InteractionTag) => interactionTag.objectCharacters) + @JoinTable() public interactedBy: Promise; /** @@ -54,5 +56,6 @@ export class WorkCharacter implements IIdentifiableEntity, IMultiNamedEntity { * existing characters character is based on */ @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacter) => worldCharacter.workCharacters) + @JoinTable() public worldCharacters: Promise; } diff --git a/src/main/entities/library/work.ts b/src/main/entities/library/work.ts index ca9d4a2..ad237ce 100644 --- a/src/main/entities/library/work.ts +++ b/src/main/entities/library/work.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { PercentCheck } from '../decorators/percent-check'; import { CollectionPart } from './collection-part'; import { Copy } from './copy'; @@ -69,6 +69,7 @@ export class Work implements IIdentifiableEntity, IMultiNamedEntity { * fictional worlds in which this work takes place */ @ManyToMany(() => World, (world: World) => world.works) + @JoinTable() public worlds: Promise; /** @@ -100,6 +101,7 @@ export class Work implements IIdentifiableEntity, IMultiNamedEntity { * the languages of the work (if applicable) */ @ManyToMany(() => Language, (language: Language) => language.works) + @JoinTable() public languages: Promise; /** diff --git a/src/main/entities/library/world-character.ts b/src/main/entities/library/world-character.ts index a9d71d4..21d9d84 100644 --- a/src/main/entities/library/world-character.ts +++ b/src/main/entities/library/world-character.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { WorkCharacter } from './work-character'; import { World } from './world'; import { WorldCharacterName } from './world-character-name'; @@ -32,6 +32,7 @@ export class WorldCharacter implements IIdentifiableEntity, IMultiNamedEntity, I public worlds: Promise; @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacter) => worldCharacter.children) + @JoinTable() public parents: Promise; @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacter) => worldCharacter.parents) diff --git a/src/main/entities/library/world.ts b/src/main/entities/library/world.ts index 1acbcb7..13a2999 100644 --- a/src/main/entities/library/world.ts +++ b/src/main/entities/library/world.ts @@ -1,4 +1,4 @@ -import { Column, Entity, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; +import { Column, Entity, JoinTable, ManyToMany, OneToMany, PrimaryGeneratedColumn } from 'typeorm'; import { Work } from './work'; import { WorldCharacter } from './world-character'; import { WorldName } from './world-name'; @@ -29,11 +29,13 @@ export class World implements IIdentifiableEntity, IMultiNamedEntity, IHierachic * canon characters in this world */ @ManyToMany(() => WorldCharacter, (worldCharacter: WorldCharacter) => worldCharacter.worlds) + @JoinTable() public worldCharacters: Promise; @ManyToMany(() => World, (world: World) => world.parents) public children: Promise; @ManyToMany(() => World, (world: World) => world.children) + @JoinTable() public parents: Promise; } diff --git a/src/main/migrations/library/1586482961027-initial_migration.ts b/src/main/migrations/library/1586482961027-initial_migration.ts deleted file mode 100644 index 7899889..0000000 --- a/src/main/migrations/library/1586482961027-initial_migration.ts +++ /dev/null @@ -1,539 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm'; - -export class initialMigration1586482961027 implements MigrationInterface { - name = 'initialMigration1586482961027'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `CREATE TABLE "author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "author_role" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "collection" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "site" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL)`, - undefined - ); - await queryRunner.query(`CREATE TABLE "language" ("code" varchar PRIMARY KEY NOT NULL)`, undefined); - await queryRunner.query( - `CREATE TABLE "transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "transformation_type" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar, "conservesTags" boolean NOT NULL DEFAULT (0))`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "world" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "world_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "isCanonical" boolean NOT NULL DEFAULT (0), "rating" integer, "releaseDate" datetime, CONSTRAINT "rating needs to be between 0 and 9007199254740991" CHECK (rating >= 0 AND rating <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "temporary_author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_53007d787184883d4f88f518213" FOREIGN KEY ("entityId") REFERENCES "author_role" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_author_role_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "author_role_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "author_role_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_author_role_name" RENAME TO "author_role_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_e32c613ebf793bdec166b99c67c" FOREIGN KEY ("entityId") REFERENCES "collection" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_collection_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "collection_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "collection_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_collection_name" RENAME TO "collection_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "FK_a331dfd7f97355b0241aabbe9dd" FOREIGN KEY ("collectionId") REFERENCES "collection" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_76bf2490e80346af774adb9f0f0" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_collection_part"("id", "order", "collectionId", "workId") SELECT "id", "order", "collectionId", "workId" FROM "collection_part"`, - undefined - ); - await queryRunner.query(`DROP TABLE "collection_part"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_collection_part" RENAME TO "collection_part"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_320041fe1c2631a761b25d4446a" FOREIGN KEY ("entityId") REFERENCES "site" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_site_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "site_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "site_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_site_name" RENAME TO "site_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer, CONSTRAINT "FK_73b253e679f350d140bdb104e49" FOREIGN KEY ("siteId") REFERENCES "site" ("id") ON DELETE RESTRICT ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_source"("id", "uri", "siteId") SELECT "id", "uri", "siteId" FROM "source"`, - undefined - ); - await queryRunner.query(`DROP TABLE "source"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_source" RENAME TO "source"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL, CONSTRAINT "FK_e8ce0011cf0a8b9fdc8ad908a44" FOREIGN KEY ("originalId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_copy"("id", "hash", "location", "ranking", "originalId") SELECT "id", "hash", "location", "ranking", "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_transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_5bc54ac960e6587c39297194ec6" FOREIGN KEY ("entityId") REFERENCES "transformation_type" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_transformation_type_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "transformation_type_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "transformation_type_name"`, undefined); - await queryRunner.query( - `ALTER TABLE "temporary_transformation_type_name" RENAME TO "transformation_type_name"`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "temporary_transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL, CONSTRAINT "FK_263a368f9017f5725c4fa12351b" FOREIGN KEY ("byWorkId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_4deb36ce15d6547c1ed7e994720" FOREIGN KEY ("typeId") REFERENCES "transformation_type" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT "FK_d41fc0471e72b5d1dda372a662c" FOREIGN KEY ("ofWorkId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_transformation"("id", "order", "byWorkId", "typeId", "ofWorkId") SELECT "id", "order", "byWorkId", "typeId", "ofWorkId" FROM "transformation"`, - undefined - ); - await queryRunner.query(`DROP TABLE "transformation"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_transformation" RENAME TO "transformation"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_af4c7e7219611f6b6025b8276f0" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_interaction_tag"("id", "weight", "tagId") SELECT "id", "weight", "tagId" FROM "interaction_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "interaction_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_interaction_tag" RENAME TO "interaction_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_94c570315f982d2434046c30dc1" FOREIGN KEY ("entityId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_tag_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "tag_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "tag_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_tag_name" RENAME TO "tag_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_8428f32a2c63df16b605e77326e" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_13dd6d2f7b58c451636bf28b4f8" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_work_tag"("id", "weight", "tagId", "workId") SELECT "id", "weight", "tagId", "workId" FROM "work_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "work_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_work_tag" RENAME TO "work_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_0c27931804d469fba75a2c5d357" FOREIGN KEY ("workCharacterId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_14ffc3712f3341e793668b2cd61" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_character_tag"("id", "weight", "workCharacterId", "tagId") SELECT "id", "weight", "workCharacterId", "tagId" FROM "character_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "character_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_character_tag" RENAME TO "character_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_0f95e554fd5bd674937f733f219" FOREIGN KEY ("entityId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_work_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "work_character_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "work_character_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_work_character_name" RENAME TO "work_character_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_1147cb1b497ecbf3b8d3c2ac1b3" FOREIGN KEY ("entityId") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_world_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "world_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "world_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_world_name" RENAME TO "world_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_00fb48ee8ded5c6bc3061c83cbb" FOREIGN KEY ("entityId") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_world_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "world_character_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "world_character_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_world_character_name" RENAME TO "world_character_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL, CONSTRAINT "FK_bd63df77a1db7870038853da30f" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_work_character"("id", "nameCanonical", "workId") SELECT "id", "nameCanonical", "workId" FROM "work_character"`, - undefined - ); - await queryRunner.query(`DROP TABLE "work_character"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_work_character" RENAME TO "work_character"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_e9887937be670e7056b2ce480d2" FOREIGN KEY ("entityId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_work_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "work_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "work_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_work_name" RENAME TO "work_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL, CONSTRAINT "FK_661d8f5cdb4bd215ad16301e0b1" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_a2045b9fc41c357d2c98d5a9d60" FOREIGN KEY ("authorId") REFERENCES "author" ("id") ON DELETE RESTRICT ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_work_author"("id", "order", "workId", "authorId") SELECT "id", "order", "workId", "authorId" FROM "work_author"`, - undefined - ); - await queryRunner.query(`DROP TABLE "work_author"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_work_author" RENAME TO "work_author"`, undefined); - await queryRunner.query( - `CREATE TABLE "temporary_author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_fb4e8ac4593d1c4d5b10c013d41" FOREIGN KEY ("entityId") REFERENCES "author" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "temporary_author_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "author_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "author_name"`, undefined); - await queryRunner.query(`ALTER TABLE "temporary_author_name" RENAME TO "author_name"`, undefined); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "author_name" RENAME TO "temporary_author_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "author_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_author_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_author_name"`, undefined); - await queryRunner.query(`ALTER TABLE "work_author" RENAME TO "temporary_work_author"`, undefined); - await queryRunner.query( - `CREATE TABLE "work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "work_author"("id", "order", "workId", "authorId") SELECT "id", "order", "workId", "authorId" FROM "temporary_work_author"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_work_author"`, undefined); - await queryRunner.query(`ALTER TABLE "work_name" RENAME TO "temporary_work_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "work_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_work_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_work_name"`, undefined); - await queryRunner.query(`ALTER TABLE "work_character" RENAME TO "temporary_work_character"`, undefined); - await queryRunner.query( - `CREATE TABLE "work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "work_character"("id", "nameCanonical", "workId") SELECT "id", "nameCanonical", "workId" FROM "temporary_work_character"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_work_character"`, undefined); - await queryRunner.query(`ALTER TABLE "world_character_name" RENAME TO "temporary_world_character_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "world_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_world_character_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_world_character_name"`, undefined); - await queryRunner.query(`ALTER TABLE "world_name" RENAME TO "temporary_world_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "world_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_world_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_world_name"`, undefined); - await queryRunner.query(`ALTER TABLE "work_character_name" RENAME TO "temporary_work_character_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "work_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_work_character_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_work_character_name"`, undefined); - await queryRunner.query(`ALTER TABLE "character_tag" RENAME TO "temporary_character_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `INSERT INTO "character_tag"("id", "weight", "workCharacterId", "tagId") SELECT "id", "weight", "workCharacterId", "tagId" FROM "temporary_character_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_character_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "work_tag" RENAME TO "temporary_work_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `INSERT INTO "work_tag"("id", "weight", "tagId", "workId") SELECT "id", "weight", "tagId", "workId" FROM "temporary_work_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_work_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "tag_name" RENAME TO "temporary_tag_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "tag_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_tag_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_tag_name"`, undefined); - await queryRunner.query(`ALTER TABLE "interaction_tag" RENAME TO "temporary_interaction_tag"`, undefined); - await queryRunner.query( - `CREATE TABLE "interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, - undefined - ); - await queryRunner.query( - `INSERT INTO "interaction_tag"("id", "weight", "tagId") SELECT "id", "weight", "tagId" FROM "temporary_interaction_tag"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_interaction_tag"`, undefined); - await queryRunner.query(`ALTER TABLE "transformation" RENAME TO "temporary_transformation"`, undefined); - await queryRunner.query( - `CREATE TABLE "transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "transformation"("id", "order", "byWorkId", "typeId", "ofWorkId") SELECT "id", "order", "byWorkId", "typeId", "ofWorkId" FROM "temporary_transformation"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_transformation"`, undefined); - await queryRunner.query( - `ALTER TABLE "transformation_type_name" RENAME TO "temporary_transformation_type_name"`, - undefined - ); - await queryRunner.query( - `CREATE TABLE "transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "transformation_type_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_transformation_type_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_transformation_type_name"`, 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, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "copy"("id", "hash", "location", "ranking", "originalId") SELECT "id", "hash", "location", "ranking", "originalId" FROM "temporary_copy"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_copy"`, undefined); - await queryRunner.query(`ALTER TABLE "source" RENAME TO "temporary_source"`, undefined); - await queryRunner.query( - `CREATE TABLE "source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "source"("id", "uri", "siteId") SELECT "id", "uri", "siteId" FROM "temporary_source"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_source"`, undefined); - await queryRunner.query(`ALTER TABLE "site_name" RENAME TO "temporary_site_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "site_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_site_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_site_name"`, undefined); - await queryRunner.query(`ALTER TABLE "collection_part" RENAME TO "temporary_collection_part"`, undefined); - await queryRunner.query( - `CREATE TABLE "collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "collection_part"("id", "order", "collectionId", "workId") SELECT "id", "order", "collectionId", "workId" FROM "temporary_collection_part"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_collection_part"`, undefined); - await queryRunner.query(`ALTER TABLE "collection_name" RENAME TO "temporary_collection_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "collection_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_collection_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_collection_name"`, undefined); - await queryRunner.query(`ALTER TABLE "author_role_name" RENAME TO "temporary_author_role_name"`, undefined); - await queryRunner.query( - `CREATE TABLE "author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, - undefined - ); - await queryRunner.query( - `INSERT INTO "author_role_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_author_role_name"`, - undefined - ); - await queryRunner.query(`DROP TABLE "temporary_author_role_name"`, undefined); - await queryRunner.query(`DROP TABLE "author_name"`, undefined); - await queryRunner.query(`DROP TABLE "author"`, undefined); - await queryRunner.query(`DROP TABLE "work_author"`, undefined); - await queryRunner.query(`DROP TABLE "work"`, undefined); - await queryRunner.query(`DROP TABLE "work_name"`, undefined); - await queryRunner.query(`DROP TABLE "work_character"`, undefined); - await queryRunner.query(`DROP TABLE "world_character"`, undefined); - await queryRunner.query(`DROP TABLE "world_character_name"`, undefined); - await queryRunner.query(`DROP TABLE "world"`, undefined); - await queryRunner.query(`DROP TABLE "world_name"`, undefined); - await queryRunner.query(`DROP TABLE "work_character_name"`, undefined); - await queryRunner.query(`DROP TABLE "character_tag"`, undefined); - await queryRunner.query(`DROP TABLE "tag"`, undefined); - await queryRunner.query(`DROP TABLE "work_tag"`, undefined); - await queryRunner.query(`DROP TABLE "tag_name"`, undefined); - await queryRunner.query(`DROP TABLE "interaction_tag"`, undefined); - await queryRunner.query(`DROP TABLE "transformation"`, undefined); - await queryRunner.query(`DROP TABLE "transformation_type"`, undefined); - await queryRunner.query(`DROP TABLE "transformation_type_name"`, undefined); - await queryRunner.query(`DROP TABLE "language"`, undefined); - await queryRunner.query(`DROP TABLE "copy"`, undefined); - await queryRunner.query(`DROP TABLE "source"`, undefined); - await queryRunner.query(`DROP TABLE "site"`, undefined); - await queryRunner.query(`DROP TABLE "site_name"`, undefined); - await queryRunner.query(`DROP TABLE "collection_part"`, undefined); - await queryRunner.query(`DROP TABLE "collection"`, undefined); - await queryRunner.query(`DROP TABLE "collection_name"`, undefined); - await queryRunner.query(`DROP TABLE "author_role"`, undefined); - await queryRunner.query(`DROP TABLE "author_role_name"`, undefined); - } -} diff --git a/src/main/migrations/library/1587423043395-initial_migration.ts b/src/main/migrations/library/1587423043395-initial_migration.ts new file mode 100644 index 0000000..ec18c28 --- /dev/null +++ b/src/main/migrations/library/1587423043395-initial_migration.ts @@ -0,0 +1,1186 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class initialMigration1587423043395 implements MigrationInterface { + name = 'initialMigration1587423043395'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TABLE "author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "author_role" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "collection" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "site" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL)`, + undefined + ); + await queryRunner.query(`CREATE TABLE "language" ("code" varchar PRIMARY KEY NOT NULL)`, undefined); + await queryRunner.query( + `CREATE TABLE "transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "transformation_type" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar, "conservesTags" boolean NOT NULL DEFAULT (0))`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "description" varchar)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "isCanonical" boolean NOT NULL DEFAULT (0), "rating" integer, "releaseDate" datetime, CONSTRAINT "rating needs to be between 0 and 9007199254740991" CHECK (rating >= 0 AND rating <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "copy_sources_source" ("copyId" integer NOT NULL, "sourceId" integer NOT NULL, PRIMARY KEY ("copyId", "sourceId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_653c33c5db26b8736e592ff3f6" ON "copy_sources_source" ("copyId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_946af3644f779b7cc7e7eb04eb" ON "copy_sources_source" ("sourceId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "tag_parents_tag" ("tagId_1" integer NOT NULL, "tagId_2" integer NOT NULL, PRIMARY KEY ("tagId_1", "tagId_2"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a56aff619335e19bd07e252d11" ON "tag_parents_tag" ("tagId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1850c401823bc25103bb621657" ON "tag_parents_tag" ("tagId_2") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_world_characters_world_character" ("worldId" integer NOT NULL, "worldCharacterId" integer NOT NULL, PRIMARY KEY ("worldId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_6024260e0f5118a2379be24a3f" ON "world_world_characters_world_character" ("worldId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ded86f18df3574ee221fff525c" ON "world_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_parents_world" ("worldId_1" integer NOT NULL, "worldId_2" integer NOT NULL, PRIMARY KEY ("worldId_1", "worldId_2"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_7864295ed996ae9d36db032c70" ON "world_parents_world" ("worldId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_63bee78016e6eb0188abded4b5" ON "world_parents_world" ("worldId_2") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_character_parents_world_character" ("worldCharacterId_1" integer NOT NULL, "worldCharacterId_2" integer NOT NULL, PRIMARY KEY ("worldCharacterId_1", "worldCharacterId_2"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_51a5b3b73ad0f5af3da0018e16" ON "world_character_parents_world_character" ("worldCharacterId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_617d4b51c57be06e915f41df7c" ON "world_character_parents_world_character" ("worldCharacterId_2") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_interact_with_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ea7223119791621d218a057fed" ON "work_character_interact_with_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_afd120250d0daa21d1f444a7f5" ON "work_character_interact_with_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_interacted_by_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a10591bbdbfb5335497e9304b2" ON "work_character_interacted_by_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_63813d9b11cd5a55afc0e91a89" ON "work_character_interacted_by_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_world_characters_world_character" ("workCharacterId" integer NOT NULL, "worldCharacterId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1664b7580fcb1d7abb64f6e966" ON "work_character_world_characters_world_character" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a08cc5365ab334c6e7069956e4" ON "work_character_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_worlds_world" ("workId" integer NOT NULL, "worldId" integer NOT NULL, PRIMARY KEY ("workId", "worldId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_4406a0c9878a37f1ad0925c8cb" ON "work_worlds_world" ("workId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_2d04b8685d3b47ce211bc3dc64" ON "work_worlds_world" ("worldId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_languages_language" ("workId" integer NOT NULL, "languageCode" varchar NOT NULL, PRIMARY KEY ("workId", "languageCode"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_3cb2ff97f8d87838282acaf2ca" ON "work_languages_language" ("workId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_59f68c6bf6a70cdce720966eee" ON "work_languages_language" ("languageCode") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_author_author_roles_author_role" ("workAuthorId" integer NOT NULL, "authorRoleId" integer NOT NULL, PRIMARY KEY ("workAuthorId", "authorRoleId"))`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ad6eb15a9e307bbc0071e45584" ON "work_author_author_roles_author_role" ("workAuthorId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1f53233757f73a30345a845b36" ON "work_author_author_roles_author_role" ("authorRoleId") `, + undefined + ); + await queryRunner.query( + `CREATE TABLE "temporary_author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_53007d787184883d4f88f518213" FOREIGN KEY ("entityId") REFERENCES "author_role" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_author_role_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "author_role_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "author_role_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_author_role_name" RENAME TO "author_role_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_e32c613ebf793bdec166b99c67c" FOREIGN KEY ("entityId") REFERENCES "collection" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_collection_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "collection_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "collection_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_collection_name" RENAME TO "collection_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "FK_a331dfd7f97355b0241aabbe9dd" FOREIGN KEY ("collectionId") REFERENCES "collection" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_76bf2490e80346af774adb9f0f0" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_collection_part"("id", "order", "collectionId", "workId") SELECT "id", "order", "collectionId", "workId" FROM "collection_part"`, + undefined + ); + await queryRunner.query(`DROP TABLE "collection_part"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_collection_part" RENAME TO "collection_part"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_320041fe1c2631a761b25d4446a" FOREIGN KEY ("entityId") REFERENCES "site" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_site_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "site_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "site_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_site_name" RENAME TO "site_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer, CONSTRAINT "FK_73b253e679f350d140bdb104e49" FOREIGN KEY ("siteId") REFERENCES "site" ("id") ON DELETE RESTRICT ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_source"("id", "uri", "siteId") SELECT "id", "uri", "siteId" FROM "source"`, + undefined + ); + await queryRunner.query(`DROP TABLE "source"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_source" RENAME TO "source"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_copy" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL, CONSTRAINT "FK_e8ce0011cf0a8b9fdc8ad908a44" FOREIGN KEY ("originalId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_copy"("id", "hash", "location", "ranking", "originalId") SELECT "id", "hash", "location", "ranking", "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_transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_5bc54ac960e6587c39297194ec6" FOREIGN KEY ("entityId") REFERENCES "transformation_type" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_transformation_type_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "transformation_type_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "transformation_type_name"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_transformation_type_name" RENAME TO "transformation_type_name"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "temporary_transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL, CONSTRAINT "FK_263a368f9017f5725c4fa12351b" FOREIGN KEY ("byWorkId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_4deb36ce15d6547c1ed7e994720" FOREIGN KEY ("typeId") REFERENCES "transformation_type" ("id") ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT "FK_d41fc0471e72b5d1dda372a662c" FOREIGN KEY ("ofWorkId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_transformation"("id", "order", "byWorkId", "typeId", "ofWorkId") SELECT "id", "order", "byWorkId", "typeId", "ofWorkId" FROM "transformation"`, + undefined + ); + await queryRunner.query(`DROP TABLE "transformation"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_transformation" RENAME TO "transformation"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_af4c7e7219611f6b6025b8276f0" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_interaction_tag"("id", "weight", "tagId") SELECT "id", "weight", "tagId" FROM "interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "interaction_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_interaction_tag" RENAME TO "interaction_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_94c570315f982d2434046c30dc1" FOREIGN KEY ("entityId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_tag_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "tag_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "tag_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_tag_name" RENAME TO "tag_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_8428f32a2c63df16b605e77326e" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_13dd6d2f7b58c451636bf28b4f8" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_tag"("id", "weight", "tagId", "workId") SELECT "id", "weight", "tagId", "workId" FROM "work_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_tag" RENAME TO "work_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991), CONSTRAINT "FK_0c27931804d469fba75a2c5d357" FOREIGN KEY ("workCharacterId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_14ffc3712f3341e793668b2cd61" FOREIGN KEY ("tagId") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_character_tag"("id", "weight", "workCharacterId", "tagId") SELECT "id", "weight", "workCharacterId", "tagId" FROM "character_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "character_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_character_tag" RENAME TO "character_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_0f95e554fd5bd674937f733f219" FOREIGN KEY ("entityId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "work_character_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_character_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_character_name" RENAME TO "work_character_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_1147cb1b497ecbf3b8d3c2ac1b3" FOREIGN KEY ("entityId") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_world_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "world_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "world_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_world_name" RENAME TO "world_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_00fb48ee8ded5c6bc3061c83cbb" FOREIGN KEY ("entityId") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_world_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "world_character_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "world_character_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_world_character_name" RENAME TO "world_character_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL, CONSTRAINT "FK_bd63df77a1db7870038853da30f" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_character"("id", "nameCanonical", "workId") SELECT "id", "nameCanonical", "workId" FROM "work_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_character"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_character" RENAME TO "work_character"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_e9887937be670e7056b2ce480d2" FOREIGN KEY ("entityId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "work_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_name" RENAME TO "work_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL, CONSTRAINT "FK_661d8f5cdb4bd215ad16301e0b1" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT "FK_a2045b9fc41c357d2c98d5a9d60" FOREIGN KEY ("authorId") REFERENCES "author" ("id") ON DELETE RESTRICT ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_author"("id", "order", "workId", "authorId") SELECT "id", "order", "workId", "authorId" FROM "work_author"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_author"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_author" RENAME TO "work_author"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL, CONSTRAINT "FK_fb4e8ac4593d1c4d5b10c013d41" FOREIGN KEY ("entityId") REFERENCES "author" ("id") ON DELETE CASCADE ON UPDATE CASCADE)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_author_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "author_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "author_name"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_author_name" RENAME TO "author_name"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_653c33c5db26b8736e592ff3f6"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_946af3644f779b7cc7e7eb04eb"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_copy_sources_source" ("copyId" integer NOT NULL, "sourceId" integer NOT NULL, CONSTRAINT "FK_653c33c5db26b8736e592ff3f65" FOREIGN KEY ("copyId") REFERENCES "copy" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_946af3644f779b7cc7e7eb04eb7" FOREIGN KEY ("sourceId") REFERENCES "source" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("copyId", "sourceId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_copy_sources_source"("copyId", "sourceId") SELECT "copyId", "sourceId" FROM "copy_sources_source"`, + undefined + ); + await queryRunner.query(`DROP TABLE "copy_sources_source"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_copy_sources_source" RENAME TO "copy_sources_source"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_653c33c5db26b8736e592ff3f6" ON "copy_sources_source" ("copyId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_946af3644f779b7cc7e7eb04eb" ON "copy_sources_source" ("sourceId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_a56aff619335e19bd07e252d11"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1850c401823bc25103bb621657"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_tag_parents_tag" ("tagId_1" integer NOT NULL, "tagId_2" integer NOT NULL, CONSTRAINT "FK_a56aff619335e19bd07e252d115" FOREIGN KEY ("tagId_1") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_1850c401823bc25103bb6216578" FOREIGN KEY ("tagId_2") REFERENCES "tag" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("tagId_1", "tagId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_tag_parents_tag"("tagId_1", "tagId_2") SELECT "tagId_1", "tagId_2" FROM "tag_parents_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "tag_parents_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_tag_parents_tag" RENAME TO "tag_parents_tag"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_a56aff619335e19bd07e252d11" ON "tag_parents_tag" ("tagId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1850c401823bc25103bb621657" ON "tag_parents_tag" ("tagId_2") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_6024260e0f5118a2379be24a3f"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ded86f18df3574ee221fff525c"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_world_world_characters_world_character" ("worldId" integer NOT NULL, "worldCharacterId" integer NOT NULL, CONSTRAINT "FK_6024260e0f5118a2379be24a3fe" FOREIGN KEY ("worldId") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_ded86f18df3574ee221fff525cd" FOREIGN KEY ("worldCharacterId") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("worldId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_world_world_characters_world_character"("worldId", "worldCharacterId") SELECT "worldId", "worldCharacterId" FROM "world_world_characters_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "world_world_characters_world_character"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_world_world_characters_world_character" RENAME TO "world_world_characters_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_6024260e0f5118a2379be24a3f" ON "world_world_characters_world_character" ("worldId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ded86f18df3574ee221fff525c" ON "world_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_7864295ed996ae9d36db032c70"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_63bee78016e6eb0188abded4b5"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_world_parents_world" ("worldId_1" integer NOT NULL, "worldId_2" integer NOT NULL, CONSTRAINT "FK_7864295ed996ae9d36db032c708" FOREIGN KEY ("worldId_1") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_63bee78016e6eb0188abded4b50" FOREIGN KEY ("worldId_2") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("worldId_1", "worldId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_world_parents_world"("worldId_1", "worldId_2") SELECT "worldId_1", "worldId_2" FROM "world_parents_world"`, + undefined + ); + await queryRunner.query(`DROP TABLE "world_parents_world"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_world_parents_world" RENAME TO "world_parents_world"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_7864295ed996ae9d36db032c70" ON "world_parents_world" ("worldId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_63bee78016e6eb0188abded4b5" ON "world_parents_world" ("worldId_2") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_51a5b3b73ad0f5af3da0018e16"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_617d4b51c57be06e915f41df7c"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_world_character_parents_world_character" ("worldCharacterId_1" integer NOT NULL, "worldCharacterId_2" integer NOT NULL, CONSTRAINT "FK_51a5b3b73ad0f5af3da0018e164" FOREIGN KEY ("worldCharacterId_1") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_617d4b51c57be06e915f41df7ce" FOREIGN KEY ("worldCharacterId_2") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("worldCharacterId_1", "worldCharacterId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_world_character_parents_world_character"("worldCharacterId_1", "worldCharacterId_2") SELECT "worldCharacterId_1", "worldCharacterId_2" FROM "world_character_parents_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "world_character_parents_world_character"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_world_character_parents_world_character" RENAME TO "world_character_parents_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_51a5b3b73ad0f5af3da0018e16" ON "world_character_parents_world_character" ("worldCharacterId_1") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_617d4b51c57be06e915f41df7c" ON "world_character_parents_world_character" ("worldCharacterId_2") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_ea7223119791621d218a057fed"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_afd120250d0daa21d1f444a7f5"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_character_interact_with_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, CONSTRAINT "FK_ea7223119791621d218a057fed2" FOREIGN KEY ("workCharacterId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_afd120250d0daa21d1f444a7f59" FOREIGN KEY ("interactionTagId") REFERENCES "interaction_tag" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_character_interact_with_interaction_tag"("workCharacterId", "interactionTagId") SELECT "workCharacterId", "interactionTagId" FROM "work_character_interact_with_interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_character_interact_with_interaction_tag"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_work_character_interact_with_interaction_tag" RENAME TO "work_character_interact_with_interaction_tag"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ea7223119791621d218a057fed" ON "work_character_interact_with_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_afd120250d0daa21d1f444a7f5" ON "work_character_interact_with_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_a10591bbdbfb5335497e9304b2"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_63813d9b11cd5a55afc0e91a89"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_character_interacted_by_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, CONSTRAINT "FK_a10591bbdbfb5335497e9304b27" FOREIGN KEY ("workCharacterId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_63813d9b11cd5a55afc0e91a89f" FOREIGN KEY ("interactionTagId") REFERENCES "interaction_tag" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_character_interacted_by_interaction_tag"("workCharacterId", "interactionTagId") SELECT "workCharacterId", "interactionTagId" FROM "work_character_interacted_by_interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_character_interacted_by_interaction_tag"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_work_character_interacted_by_interaction_tag" RENAME TO "work_character_interacted_by_interaction_tag"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a10591bbdbfb5335497e9304b2" ON "work_character_interacted_by_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_63813d9b11cd5a55afc0e91a89" ON "work_character_interacted_by_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_1664b7580fcb1d7abb64f6e966"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a08cc5365ab334c6e7069956e4"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_character_world_characters_world_character" ("workCharacterId" integer NOT NULL, "worldCharacterId" integer NOT NULL, CONSTRAINT "FK_1664b7580fcb1d7abb64f6e9665" FOREIGN KEY ("workCharacterId") REFERENCES "work_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_a08cc5365ab334c6e7069956e46" FOREIGN KEY ("worldCharacterId") REFERENCES "world_character" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workCharacterId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_character_world_characters_world_character"("workCharacterId", "worldCharacterId") SELECT "workCharacterId", "worldCharacterId" FROM "work_character_world_characters_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_character_world_characters_world_character"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_work_character_world_characters_world_character" RENAME TO "work_character_world_characters_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1664b7580fcb1d7abb64f6e966" ON "work_character_world_characters_world_character" ("workCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a08cc5365ab334c6e7069956e4" ON "work_character_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_4406a0c9878a37f1ad0925c8cb"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_2d04b8685d3b47ce211bc3dc64"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_worlds_world" ("workId" integer NOT NULL, "worldId" integer NOT NULL, CONSTRAINT "FK_4406a0c9878a37f1ad0925c8cb2" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_2d04b8685d3b47ce211bc3dc648" FOREIGN KEY ("worldId") REFERENCES "world" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workId", "worldId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_worlds_world"("workId", "worldId") SELECT "workId", "worldId" FROM "work_worlds_world"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_worlds_world"`, undefined); + await queryRunner.query(`ALTER TABLE "temporary_work_worlds_world" RENAME TO "work_worlds_world"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_4406a0c9878a37f1ad0925c8cb" ON "work_worlds_world" ("workId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_2d04b8685d3b47ce211bc3dc64" ON "work_worlds_world" ("worldId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_3cb2ff97f8d87838282acaf2ca"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_59f68c6bf6a70cdce720966eee"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_languages_language" ("workId" integer NOT NULL, "languageCode" varchar NOT NULL, CONSTRAINT "FK_3cb2ff97f8d87838282acaf2ca3" FOREIGN KEY ("workId") REFERENCES "work" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_59f68c6bf6a70cdce720966eee6" FOREIGN KEY ("languageCode") REFERENCES "language" ("code") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workId", "languageCode"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_languages_language"("workId", "languageCode") SELECT "workId", "languageCode" FROM "work_languages_language"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_languages_language"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_work_languages_language" RENAME TO "work_languages_language"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_3cb2ff97f8d87838282acaf2ca" ON "work_languages_language" ("workId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_59f68c6bf6a70cdce720966eee" ON "work_languages_language" ("languageCode") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_ad6eb15a9e307bbc0071e45584"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1f53233757f73a30345a845b36"`, undefined); + await queryRunner.query( + `CREATE TABLE "temporary_work_author_author_roles_author_role" ("workAuthorId" integer NOT NULL, "authorRoleId" integer NOT NULL, CONSTRAINT "FK_ad6eb15a9e307bbc0071e455843" FOREIGN KEY ("workAuthorId") REFERENCES "work_author" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT "FK_1f53233757f73a30345a845b36d" FOREIGN KEY ("authorRoleId") REFERENCES "author_role" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, PRIMARY KEY ("workAuthorId", "authorRoleId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "temporary_work_author_author_roles_author_role"("workAuthorId", "authorRoleId") SELECT "workAuthorId", "authorRoleId" FROM "work_author_author_roles_author_role"`, + undefined + ); + await queryRunner.query(`DROP TABLE "work_author_author_roles_author_role"`, undefined); + await queryRunner.query( + `ALTER TABLE "temporary_work_author_author_roles_author_role" RENAME TO "work_author_author_roles_author_role"`, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ad6eb15a9e307bbc0071e45584" ON "work_author_author_roles_author_role" ("workAuthorId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1f53233757f73a30345a845b36" ON "work_author_author_roles_author_role" ("authorRoleId") `, + undefined + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_1f53233757f73a30345a845b36"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ad6eb15a9e307bbc0071e45584"`, undefined); + await queryRunner.query( + `ALTER TABLE "work_author_author_roles_author_role" RENAME TO "temporary_work_author_author_roles_author_role"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_author_author_roles_author_role" ("workAuthorId" integer NOT NULL, "authorRoleId" integer NOT NULL, PRIMARY KEY ("workAuthorId", "authorRoleId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_author_author_roles_author_role"("workAuthorId", "authorRoleId") SELECT "workAuthorId", "authorRoleId" FROM "temporary_work_author_author_roles_author_role"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_author_author_roles_author_role"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_1f53233757f73a30345a845b36" ON "work_author_author_roles_author_role" ("authorRoleId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ad6eb15a9e307bbc0071e45584" ON "work_author_author_roles_author_role" ("workAuthorId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_59f68c6bf6a70cdce720966eee"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_3cb2ff97f8d87838282acaf2ca"`, undefined); + await queryRunner.query( + `ALTER TABLE "work_languages_language" RENAME TO "temporary_work_languages_language"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_languages_language" ("workId" integer NOT NULL, "languageCode" varchar NOT NULL, PRIMARY KEY ("workId", "languageCode"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_languages_language"("workId", "languageCode") SELECT "workId", "languageCode" FROM "temporary_work_languages_language"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_languages_language"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_59f68c6bf6a70cdce720966eee" ON "work_languages_language" ("languageCode") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_3cb2ff97f8d87838282acaf2ca" ON "work_languages_language" ("workId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_2d04b8685d3b47ce211bc3dc64"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_4406a0c9878a37f1ad0925c8cb"`, undefined); + await queryRunner.query(`ALTER TABLE "work_worlds_world" RENAME TO "temporary_work_worlds_world"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_worlds_world" ("workId" integer NOT NULL, "worldId" integer NOT NULL, PRIMARY KEY ("workId", "worldId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_worlds_world"("workId", "worldId") SELECT "workId", "worldId" FROM "temporary_work_worlds_world"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_worlds_world"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_2d04b8685d3b47ce211bc3dc64" ON "work_worlds_world" ("worldId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_4406a0c9878a37f1ad0925c8cb" ON "work_worlds_world" ("workId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_a08cc5365ab334c6e7069956e4"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1664b7580fcb1d7abb64f6e966"`, undefined); + await queryRunner.query( + `ALTER TABLE "work_character_world_characters_world_character" RENAME TO "temporary_work_character_world_characters_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_world_characters_world_character" ("workCharacterId" integer NOT NULL, "worldCharacterId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_character_world_characters_world_character"("workCharacterId", "worldCharacterId") SELECT "workCharacterId", "worldCharacterId" FROM "temporary_work_character_world_characters_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_character_world_characters_world_character"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_a08cc5365ab334c6e7069956e4" ON "work_character_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_1664b7580fcb1d7abb64f6e966" ON "work_character_world_characters_world_character" ("workCharacterId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_63813d9b11cd5a55afc0e91a89"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a10591bbdbfb5335497e9304b2"`, undefined); + await queryRunner.query( + `ALTER TABLE "work_character_interacted_by_interaction_tag" RENAME TO "temporary_work_character_interacted_by_interaction_tag"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_interacted_by_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_character_interacted_by_interaction_tag"("workCharacterId", "interactionTagId") SELECT "workCharacterId", "interactionTagId" FROM "temporary_work_character_interacted_by_interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_character_interacted_by_interaction_tag"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_63813d9b11cd5a55afc0e91a89" ON "work_character_interacted_by_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a10591bbdbfb5335497e9304b2" ON "work_character_interacted_by_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_afd120250d0daa21d1f444a7f5"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ea7223119791621d218a057fed"`, undefined); + await queryRunner.query( + `ALTER TABLE "work_character_interact_with_interaction_tag" RENAME TO "temporary_work_character_interact_with_interaction_tag"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "work_character_interact_with_interaction_tag" ("workCharacterId" integer NOT NULL, "interactionTagId" integer NOT NULL, PRIMARY KEY ("workCharacterId", "interactionTagId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_character_interact_with_interaction_tag"("workCharacterId", "interactionTagId") SELECT "workCharacterId", "interactionTagId" FROM "temporary_work_character_interact_with_interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_character_interact_with_interaction_tag"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_afd120250d0daa21d1f444a7f5" ON "work_character_interact_with_interaction_tag" ("interactionTagId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_ea7223119791621d218a057fed" ON "work_character_interact_with_interaction_tag" ("workCharacterId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_617d4b51c57be06e915f41df7c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_51a5b3b73ad0f5af3da0018e16"`, undefined); + await queryRunner.query( + `ALTER TABLE "world_character_parents_world_character" RENAME TO "temporary_world_character_parents_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_character_parents_world_character" ("worldCharacterId_1" integer NOT NULL, "worldCharacterId_2" integer NOT NULL, PRIMARY KEY ("worldCharacterId_1", "worldCharacterId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "world_character_parents_world_character"("worldCharacterId_1", "worldCharacterId_2") SELECT "worldCharacterId_1", "worldCharacterId_2" FROM "temporary_world_character_parents_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_world_character_parents_world_character"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_617d4b51c57be06e915f41df7c" ON "world_character_parents_world_character" ("worldCharacterId_2") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_51a5b3b73ad0f5af3da0018e16" ON "world_character_parents_world_character" ("worldCharacterId_1") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_63bee78016e6eb0188abded4b5"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_7864295ed996ae9d36db032c70"`, undefined); + await queryRunner.query(`ALTER TABLE "world_parents_world" RENAME TO "temporary_world_parents_world"`, undefined); + await queryRunner.query( + `CREATE TABLE "world_parents_world" ("worldId_1" integer NOT NULL, "worldId_2" integer NOT NULL, PRIMARY KEY ("worldId_1", "worldId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "world_parents_world"("worldId_1", "worldId_2") SELECT "worldId_1", "worldId_2" FROM "temporary_world_parents_world"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_world_parents_world"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_63bee78016e6eb0188abded4b5" ON "world_parents_world" ("worldId_2") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_7864295ed996ae9d36db032c70" ON "world_parents_world" ("worldId_1") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_ded86f18df3574ee221fff525c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_6024260e0f5118a2379be24a3f"`, undefined); + await queryRunner.query( + `ALTER TABLE "world_world_characters_world_character" RENAME TO "temporary_world_world_characters_world_character"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "world_world_characters_world_character" ("worldId" integer NOT NULL, "worldCharacterId" integer NOT NULL, PRIMARY KEY ("worldId", "worldCharacterId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "world_world_characters_world_character"("worldId", "worldCharacterId") SELECT "worldId", "worldCharacterId" FROM "temporary_world_world_characters_world_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_world_world_characters_world_character"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_ded86f18df3574ee221fff525c" ON "world_world_characters_world_character" ("worldCharacterId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_6024260e0f5118a2379be24a3f" ON "world_world_characters_world_character" ("worldId") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_1850c401823bc25103bb621657"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a56aff619335e19bd07e252d11"`, undefined); + await queryRunner.query(`ALTER TABLE "tag_parents_tag" RENAME TO "temporary_tag_parents_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "tag_parents_tag" ("tagId_1" integer NOT NULL, "tagId_2" integer NOT NULL, PRIMARY KEY ("tagId_1", "tagId_2"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "tag_parents_tag"("tagId_1", "tagId_2") SELECT "tagId_1", "tagId_2" FROM "temporary_tag_parents_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_tag_parents_tag"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_1850c401823bc25103bb621657" ON "tag_parents_tag" ("tagId_2") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_a56aff619335e19bd07e252d11" ON "tag_parents_tag" ("tagId_1") `, + undefined + ); + await queryRunner.query(`DROP INDEX "IDX_946af3644f779b7cc7e7eb04eb"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_653c33c5db26b8736e592ff3f6"`, undefined); + await queryRunner.query(`ALTER TABLE "copy_sources_source" RENAME TO "temporary_copy_sources_source"`, undefined); + await queryRunner.query( + `CREATE TABLE "copy_sources_source" ("copyId" integer NOT NULL, "sourceId" integer NOT NULL, PRIMARY KEY ("copyId", "sourceId"))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "copy_sources_source"("copyId", "sourceId") SELECT "copyId", "sourceId" FROM "temporary_copy_sources_source"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_copy_sources_source"`, undefined); + await queryRunner.query( + `CREATE INDEX "IDX_946af3644f779b7cc7e7eb04eb" ON "copy_sources_source" ("sourceId") `, + undefined + ); + await queryRunner.query( + `CREATE INDEX "IDX_653c33c5db26b8736e592ff3f6" ON "copy_sources_source" ("copyId") `, + undefined + ); + await queryRunner.query(`ALTER TABLE "author_name" RENAME TO "temporary_author_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "author_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "author_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_author_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_author_name"`, undefined); + await queryRunner.query(`ALTER TABLE "work_author" RENAME TO "temporary_work_author"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_author" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "workId" integer NOT NULL, "authorId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_author"("id", "order", "workId", "authorId") SELECT "id", "order", "workId", "authorId" FROM "temporary_work_author"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_author"`, undefined); + await queryRunner.query(`ALTER TABLE "work_name" RENAME TO "temporary_work_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_work_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_name"`, undefined); + await queryRunner.query(`ALTER TABLE "work_character" RENAME TO "temporary_work_character"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_character" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "nameCanonical" varchar NOT NULL, "workId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_character"("id", "nameCanonical", "workId") SELECT "id", "nameCanonical", "workId" FROM "temporary_work_character"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_character"`, undefined); + await queryRunner.query(`ALTER TABLE "world_character_name" RENAME TO "temporary_world_character_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "world_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "world_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_world_character_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_world_character_name"`, undefined); + await queryRunner.query(`ALTER TABLE "world_name" RENAME TO "temporary_world_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "world_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "world_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_world_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_world_name"`, undefined); + await queryRunner.query(`ALTER TABLE "work_character_name" RENAME TO "temporary_work_character_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_character_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_character_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_work_character_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_character_name"`, undefined); + await queryRunner.query(`ALTER TABLE "character_tag" RENAME TO "temporary_character_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "character_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "workCharacterId" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "character_tag"("id", "weight", "workCharacterId", "tagId") SELECT "id", "weight", "workCharacterId", "tagId" FROM "temporary_character_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_character_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "work_tag" RENAME TO "temporary_work_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "work_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, "workId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "work_tag"("id", "weight", "tagId", "workId") SELECT "id", "weight", "tagId", "workId" FROM "temporary_work_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_work_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "tag_name" RENAME TO "temporary_tag_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "tag_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "tag_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_tag_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_tag_name"`, undefined); + await queryRunner.query(`ALTER TABLE "interaction_tag" RENAME TO "temporary_interaction_tag"`, undefined); + await queryRunner.query( + `CREATE TABLE "interaction_tag" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "weight" integer NOT NULL, "tagId" integer NOT NULL, CONSTRAINT "weight needs to be between 0 and 9007199254740991" CHECK (weight >= 0 AND weight <= 9007199254740991))`, + undefined + ); + await queryRunner.query( + `INSERT INTO "interaction_tag"("id", "weight", "tagId") SELECT "id", "weight", "tagId" FROM "temporary_interaction_tag"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_interaction_tag"`, undefined); + await queryRunner.query(`ALTER TABLE "transformation" RENAME TO "temporary_transformation"`, undefined); + await queryRunner.query( + `CREATE TABLE "transformation" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "byWorkId" integer NOT NULL, "typeId" integer NOT NULL, "ofWorkId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "transformation"("id", "order", "byWorkId", "typeId", "ofWorkId") SELECT "id", "order", "byWorkId", "typeId", "ofWorkId" FROM "temporary_transformation"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_transformation"`, undefined); + await queryRunner.query( + `ALTER TABLE "transformation_type_name" RENAME TO "temporary_transformation_type_name"`, + undefined + ); + await queryRunner.query( + `CREATE TABLE "transformation_type_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "transformation_type_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_transformation_type_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_transformation_type_name"`, 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, "hash" varchar NOT NULL, "location" varchar, "ranking" integer NOT NULL DEFAULT (0), "originalId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "copy"("id", "hash", "location", "ranking", "originalId") SELECT "id", "hash", "location", "ranking", "originalId" FROM "temporary_copy"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_copy"`, undefined); + await queryRunner.query(`ALTER TABLE "source" RENAME TO "temporary_source"`, undefined); + await queryRunner.query( + `CREATE TABLE "source" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "uri" varchar NOT NULL, "siteId" integer)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "source"("id", "uri", "siteId") SELECT "id", "uri", "siteId" FROM "temporary_source"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_source"`, undefined); + await queryRunner.query(`ALTER TABLE "site_name" RENAME TO "temporary_site_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "site_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "site_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_site_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_site_name"`, undefined); + await queryRunner.query(`ALTER TABLE "collection_part" RENAME TO "temporary_collection_part"`, undefined); + await queryRunner.query( + `CREATE TABLE "collection_part" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "order" integer NOT NULL DEFAULT (0), "collectionId" integer NOT NULL, "workId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "collection_part"("id", "order", "collectionId", "workId") SELECT "id", "order", "collectionId", "workId" FROM "temporary_collection_part"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_collection_part"`, undefined); + await queryRunner.query(`ALTER TABLE "collection_name" RENAME TO "temporary_collection_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "collection_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "collection_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_collection_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_collection_name"`, undefined); + await queryRunner.query(`ALTER TABLE "author_role_name" RENAME TO "temporary_author_role_name"`, undefined); + await queryRunner.query( + `CREATE TABLE "author_role_name" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "entityId" integer NOT NULL)`, + undefined + ); + await queryRunner.query( + `INSERT INTO "author_role_name"("id", "name", "entityId") SELECT "id", "name", "entityId" FROM "temporary_author_role_name"`, + undefined + ); + await queryRunner.query(`DROP TABLE "temporary_author_role_name"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1f53233757f73a30345a845b36"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ad6eb15a9e307bbc0071e45584"`, undefined); + await queryRunner.query(`DROP TABLE "work_author_author_roles_author_role"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_59f68c6bf6a70cdce720966eee"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_3cb2ff97f8d87838282acaf2ca"`, undefined); + await queryRunner.query(`DROP TABLE "work_languages_language"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_2d04b8685d3b47ce211bc3dc64"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_4406a0c9878a37f1ad0925c8cb"`, undefined); + await queryRunner.query(`DROP TABLE "work_worlds_world"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a08cc5365ab334c6e7069956e4"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1664b7580fcb1d7abb64f6e966"`, undefined); + await queryRunner.query(`DROP TABLE "work_character_world_characters_world_character"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_63813d9b11cd5a55afc0e91a89"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a10591bbdbfb5335497e9304b2"`, undefined); + await queryRunner.query(`DROP TABLE "work_character_interacted_by_interaction_tag"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_afd120250d0daa21d1f444a7f5"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ea7223119791621d218a057fed"`, undefined); + await queryRunner.query(`DROP TABLE "work_character_interact_with_interaction_tag"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_617d4b51c57be06e915f41df7c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_51a5b3b73ad0f5af3da0018e16"`, undefined); + await queryRunner.query(`DROP TABLE "world_character_parents_world_character"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_63bee78016e6eb0188abded4b5"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_7864295ed996ae9d36db032c70"`, undefined); + await queryRunner.query(`DROP TABLE "world_parents_world"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_ded86f18df3574ee221fff525c"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_6024260e0f5118a2379be24a3f"`, undefined); + await queryRunner.query(`DROP TABLE "world_world_characters_world_character"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_1850c401823bc25103bb621657"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_a56aff619335e19bd07e252d11"`, undefined); + await queryRunner.query(`DROP TABLE "tag_parents_tag"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_946af3644f779b7cc7e7eb04eb"`, undefined); + await queryRunner.query(`DROP INDEX "IDX_653c33c5db26b8736e592ff3f6"`, undefined); + await queryRunner.query(`DROP TABLE "copy_sources_source"`, undefined); + await queryRunner.query(`DROP TABLE "author_name"`, undefined); + await queryRunner.query(`DROP TABLE "author"`, undefined); + await queryRunner.query(`DROP TABLE "work_author"`, undefined); + await queryRunner.query(`DROP TABLE "work"`, undefined); + await queryRunner.query(`DROP TABLE "work_name"`, undefined); + await queryRunner.query(`DROP TABLE "work_character"`, undefined); + await queryRunner.query(`DROP TABLE "world_character"`, undefined); + await queryRunner.query(`DROP TABLE "world_character_name"`, undefined); + await queryRunner.query(`DROP TABLE "world"`, undefined); + await queryRunner.query(`DROP TABLE "world_name"`, undefined); + await queryRunner.query(`DROP TABLE "work_character_name"`, undefined); + await queryRunner.query(`DROP TABLE "character_tag"`, undefined); + await queryRunner.query(`DROP TABLE "tag"`, undefined); + await queryRunner.query(`DROP TABLE "work_tag"`, undefined); + await queryRunner.query(`DROP TABLE "tag_name"`, undefined); + await queryRunner.query(`DROP TABLE "interaction_tag"`, undefined); + await queryRunner.query(`DROP TABLE "transformation"`, undefined); + await queryRunner.query(`DROP TABLE "transformation_type"`, undefined); + await queryRunner.query(`DROP TABLE "transformation_type_name"`, undefined); + await queryRunner.query(`DROP TABLE "language"`, undefined); + await queryRunner.query(`DROP TABLE "copy"`, undefined); + await queryRunner.query(`DROP TABLE "source"`, undefined); + await queryRunner.query(`DROP TABLE "site"`, undefined); + await queryRunner.query(`DROP TABLE "site_name"`, undefined); + await queryRunner.query(`DROP TABLE "collection_part"`, undefined); + await queryRunner.query(`DROP TABLE "collection"`, undefined); + await queryRunner.query(`DROP TABLE "collection_name"`, undefined); + await queryRunner.query(`DROP TABLE "author_role"`, undefined); + await queryRunner.query(`DROP TABLE "author_role_name"`, undefined); + } +}