fix: make F4 lifecycle constraint rollback executable
This commit is contained in:
+14
-12
@@ -97,6 +97,20 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
// Primero restauramos la guarda D5. De otro modo el propio trigger F4 impediría
|
||||||
|
// traducir una fila SEALED a CLOSED durante el rollback.
|
||||||
|
await queryRunner.query(`
|
||||||
|
CREATE OR REPLACE FUNCTION dhv2_guard_closed_act_immutable()
|
||||||
|
RETURNS trigger LANGUAGE plpgsql AS $$
|
||||||
|
BEGIN
|
||||||
|
IF OLD.status IN ('CLOSED','RECTIFIED') THEN
|
||||||
|
RAISE EXCEPTION 'El acta cerrada es inmutable';
|
||||||
|
END IF;
|
||||||
|
RETURN NEW;
|
||||||
|
END
|
||||||
|
$$
|
||||||
|
`);
|
||||||
|
|
||||||
// El contrato D5 no conoce los estados F4. Reducimos las representaciones
|
// El contrato D5 no conoce los estados F4. Reducimos las representaciones
|
||||||
// nuevas a sus equivalentes históricos antes de restaurar sus CHECKs.
|
// nuevas a sus equivalentes históricos antes de restaurar sus CHECKs.
|
||||||
await queryRunner.query(`
|
await queryRunner.query(`
|
||||||
@@ -189,17 +203,5 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
|||||||
END
|
END
|
||||||
$$
|
$$
|
||||||
`);
|
`);
|
||||||
|
|
||||||
await queryRunner.query(`
|
|
||||||
CREATE OR REPLACE FUNCTION dhv2_guard_closed_act_immutable()
|
|
||||||
RETURNS trigger LANGUAGE plpgsql AS $$
|
|
||||||
BEGIN
|
|
||||||
IF OLD.status IN ('CLOSED','RECTIFIED') THEN
|
|
||||||
RAISE EXCEPTION 'El acta cerrada es inmutable';
|
|
||||||
END IF;
|
|
||||||
RETURN NEW;
|
|
||||||
END
|
|
||||||
$$
|
|
||||||
`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user