import { MigrationInterface, QueryRunner } from 'typeorm'; export class initialize1625776986297 implements MigrationInterface { name = 'initialize1625776986297'; public async up(queryRunner: QueryRunner): Promise { await queryRunner.query( `CREATE SEQUENCE "items_serial" AS bigint MINVALUE 140000000000 START WITH 140000000000;`, ); await queryRunner.query( `CREATE TABLE "item" ("id" bigint NOT NULL DEFAULT nextval('items_serial'), "name" character varying NOT NULL, "notes" character varying, "parentId" bigint, CONSTRAINT "PK_d3c0c71f23e7adcf952a1d13423" PRIMARY KEY ("id"))`, ); await queryRunner.query( `CREATE TABLE "item_closure_closure" ("id_ancestor" bigint NOT NULL, "id_descendant" bigint NOT NULL, CONSTRAINT "PK_251adfef42a155516a515eaf7d5" PRIMARY KEY ("id_ancestor", "id_descendant"))`, ); await queryRunner.query( `CREATE INDEX "IDX_854ec7dacad2df840aa8d4ee0a" ON "item_closure_closure" ("id_ancestor") `, ); await queryRunner.query( `CREATE INDEX "IDX_58bff82facc806857035e516c9" ON "item_closure_closure" ("id_descendant") `, ); await queryRunner.query( `ALTER TABLE "item" ADD CONSTRAINT "FK_2e3b654a1f669d356e259e7ca3c" FOREIGN KEY ("parentId") REFERENCES "item"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, ); await queryRunner.query( `ALTER TABLE "item_closure_closure" ADD CONSTRAINT "FK_854ec7dacad2df840aa8d4ee0a9" FOREIGN KEY ("id_ancestor") REFERENCES "item"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, ); await queryRunner.query( `ALTER TABLE "item_closure_closure" ADD CONSTRAINT "FK_58bff82facc806857035e516c9e" FOREIGN KEY ("id_descendant") REFERENCES "item"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, ); } public async down(queryRunner: QueryRunner): Promise { await queryRunner.query(`DROP SEQUENCE items_serial;`); await queryRunner.query( `ALTER TABLE "item_closure_closure" DROP CONSTRAINT "FK_58bff82facc806857035e516c9e"`, ); await queryRunner.query( `ALTER TABLE "item_closure_closure" DROP CONSTRAINT "FK_854ec7dacad2df840aa8d4ee0a9"`, ); await queryRunner.query( `ALTER TABLE "item" DROP CONSTRAINT "FK_2e3b654a1f669d356e259e7ca3c"`, ); await queryRunner.query(`DROP INDEX "IDX_58bff82facc806857035e516c9"`); await queryRunner.query(`DROP INDEX "IDX_854ec7dacad2df840aa8d4ee0a"`); await queryRunner.query(`DROP TABLE "item_closure_closure"`); await queryRunner.query(`DROP TABLE "item"`); } }