penisularhr / src / database / migrations / 1706717084801-create-activity-group.ts
1706717084801-create-activity-group.ts
Raw
/* eslint-disable max-len */
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
import { MigrationInterface, QueryRunner } from 'typeorm';

export class CreateActivityGroup1706717084801 implements MigrationInterface {
  name = 'CreateActivityGroup1706717084801';

  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE "activity_group" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "name" character varying NOT NULL, CONSTRAINT "UQ_91571d03761a813793279990021" UNIQUE ("name"), CONSTRAINT "PK_747139e8e5ba564d0edc7652f77" PRIMARY KEY ("id"))`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" ADD "activity_record_setting_id" uuid`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "normal_rate_per" SET DEFAULT '1.5'`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" ADD CONSTRAINT "activity_record_setting_activity_group" FOREIGN KEY ("activity_record_setting_id") REFERENCES "activity_group"("id") ON DELETE NO ACTION ON UPDATE CASCADE`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" DROP CONSTRAINT "activity_record_setting_activity_group"`,
    );
    await queryRunner.query(
      `ALTER TABLE "ot_settings" ALTER COLUMN "normal_rate_per" SET DEFAULT 1.5`,
    );
    await queryRunner.query(
      `ALTER TABLE "activity_record_settings" DROP COLUMN "activity_record_setting_id"`,
    );
    await queryRunner.query(`DROP TABLE "activity_group"`);
  }
}