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> {
|
||||
// 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
|
||||
// nuevas a sus equivalentes históricos antes de restaurar sus CHECKs.
|
||||
await queryRunner.query(`
|
||||
@@ -189,17 +203,5 @@ export class F4AlignDocumentLifecycleConstraints1790000600000 implements Migrati
|
||||
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