35 lines
953 B
TypeScript
35 lines
953 B
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
export class PhaseD21SingleActPerVisit1787072400000 implements MigrationInterface {
|
|
name = 'PhaseD21SingleActPerVisit1787072400000';
|
|
|
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT visit_id
|
|
FROM inspection_acts
|
|
GROUP BY visit_id
|
|
HAVING COUNT(*) > 1
|
|
) THEN
|
|
RAISE EXCEPTION
|
|
'D2.1 no puede aplicar un acta por visita: existen visitas con actas duplicadas';
|
|
END IF;
|
|
END
|
|
$$
|
|
`);
|
|
await queryRunner.query(`
|
|
ALTER TABLE inspection_acts
|
|
ADD CONSTRAINT uq_inspection_acts_visit UNIQUE (visit_id)
|
|
`);
|
|
}
|
|
|
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query(`
|
|
ALTER TABLE inspection_acts
|
|
DROP CONSTRAINT uq_inspection_acts_visit
|
|
`);
|
|
}
|
|
}
|