From fcef65aa38e0155590bd050708d16c804e7f2c10 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Mon, 2 Feb 2026 09:37:07 +0330 Subject: [PATCH] add : migartion --- .../migrations/1770010221435-migrations.ts | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 database/migrations/1770010221435-migrations.ts diff --git a/database/migrations/1770010221435-migrations.ts b/database/migrations/1770010221435-migrations.ts new file mode 100644 index 0000000..23e4e4e --- /dev/null +++ b/database/migrations/1770010221435-migrations.ts @@ -0,0 +1,41 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class Migrations1770010221435 implements MigrationInterface { + name = "Migrations1770010221435"; + + public async up(queryRunner: QueryRunner): Promise { + 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 { + 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`, + ); + } +}