Files
dh-inspeccion-v2/api-v3/src/database/migrations/1789845000000-phase-f3-1-inspector-document-delivery.ts
T

57 lines
2.2 KiB
TypeScript

import { MigrationInterface, QueryRunner } from 'typeorm';
export class PhaseF31InspectorDocumentDelivery1789845000000 implements MigrationInterface {
name = 'PhaseF31InspectorDocumentDelivery1789845000000';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
ADD COLUMN recipient_user_id uuid NULL
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
ADD CONSTRAINT fk_inspection_document_deliveries_recipient_user
FOREIGN KEY (recipient_user_id) REFERENCES users(id) ON DELETE SET NULL
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
DROP CONSTRAINT chk_inspection_document_deliveries_recipient_kind
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
ADD CONSTRAINT chk_inspection_document_deliveries_recipient_kind
CHECK (recipient_kind IN ('COMPANY','OFFICE','DIRECTOR','INSPECTOR'))
`);
await queryRunner.query(`
CREATE INDEX idx_inspection_document_deliveries_recipient_user
ON inspection_document_deliveries(recipient_user_id)
WHERE recipient_user_id IS NOT NULL
`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
DELETE FROM inspection_document_deliveries
WHERE recipient_kind='INSPECTOR'
`);
await queryRunner.query(`DROP INDEX IF EXISTS idx_inspection_document_deliveries_recipient_user`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
DROP CONSTRAINT chk_inspection_document_deliveries_recipient_kind
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
ADD CONSTRAINT chk_inspection_document_deliveries_recipient_kind
CHECK (recipient_kind IN ('COMPANY','OFFICE','DIRECTOR'))
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
DROP CONSTRAINT IF EXISTS fk_inspection_document_deliveries_recipient_user
`);
await queryRunner.query(`
ALTER TABLE inspection_document_deliveries
DROP COLUMN IF EXISTS recipient_user_id
`);
}
}