57 lines
2.2 KiB
TypeScript
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
|
|
`);
|
|
}
|
|
}
|