Files
dsc-api/database/migrations/1770010221435-migrations.ts
T
2026-02-02 09:37:07 +03:30

42 lines
3.0 KiB
TypeScript

import { MigrationInterface, QueryRunner } from "typeorm";
export class Migrations1770010221435 implements MigrationInterface {
name = "Migrations1770010221435";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "invoice_item" DROP CONSTRAINT "FK_invoice_item_plan"`);
await queryRunner.query(`DROP INDEX "public"."IDX_invoice_item_plan"`);
await queryRunner.query(`CREATE TYPE "public"."invoice_purpose_enum" AS ENUM('new', 'renew', 'upgrade') `);
await queryRunner.query(`ALTER TABLE "invoice" ADD "purpose" "public"."invoice_purpose_enum" NOT NULL DEFAULT 'new'`);
await queryRunner.query(`ALTER TYPE "public"."permission_name_enum" RENAME TO "permission_name_enum_old"`);
await queryRunner.query(
`CREATE TYPE "public"."permission_name_enum" AS ENUM('services', 'customers', 'agents', 'developers', 'invoices', 'transactions', 'discounts', 'admins', 'tickets', 'criticisms', 'contacts_us', 'advertisements', 'announcements', 'blogs', 'learnings', 'logs', 'settings', 'bank_accounts', 'payments', 'manage_sso_clients', 'support_plan', 'dmenu')`,
);
await queryRunner.query(
`ALTER TABLE "permission" ALTER COLUMN "name" TYPE "public"."permission_name_enum" USING "name"::"text"::"public"."permission_name_enum"`,
);
await queryRunner.query(`DROP TYPE "public"."permission_name_enum_old"`);
await queryRunner.query(
`ALTER TABLE "invoice_item" ADD CONSTRAINT "FK_02992a67ba11a64530448925295" FOREIGN KEY ("planId") REFERENCES "subscription_plan"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "invoice_item" DROP CONSTRAINT "FK_02992a67ba11a64530448925295"`);
await queryRunner.query(
`CREATE TYPE "public"."permission_name_enum_old" AS ENUM('services', 'customers', 'agents', 'developers', 'invoices', 'transactions', 'discounts', 'admins', 'tickets', 'criticisms', 'contacts_us', 'advertisements', 'announcements', 'blogs', 'learnings', 'logs', 'settings', 'bank_accounts', 'payments', 'manage_sso_clients', 'support_plan', 'icons', 'dmenu')`,
);
await queryRunner.query(
`ALTER TABLE "permission" ALTER COLUMN "name" TYPE "public"."permission_name_enum_old" USING "name"::"text"::"public"."permission_name_enum_old"`,
);
await queryRunner.query(`DROP TYPE "public"."permission_name_enum"`);
await queryRunner.query(`ALTER TYPE "public"."permission_name_enum_old" RENAME TO "permission_name_enum"`);
await queryRunner.query(`ALTER TABLE "invoice" DROP COLUMN "purpose"`);
await queryRunner.query(`DROP TYPE "public"."invoice_purpose_enum"`);
await queryRunner.query(`CREATE INDEX "IDX_invoice_item_plan" ON "invoice_item" ("planId") `);
await queryRunner.query(
`ALTER TABLE "invoice_item" ADD CONSTRAINT "FK_invoice_item_plan" FOREIGN KEY ("planId") REFERENCES "subscription_plan"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`,
);
}
}