Migración Guarani de 3.20 a 3.21 - Base de datos

Buen día.
Tengo inconvenientes a la hora de ejecutar el punto 10 del instructivo https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.21.0/actualizacion_de_produccion/gestion (./guarani migrar_base):

Ejecutado: 03/04/23 09:46:16 Migrando la base de la versi?n 3.20.0 hasta la versi?n 3.21.0 Desactivando esquema de auditoria durante la migraci?n OK Actualizando BD de negocios a version 3.20.1 Actualizando BD de negocios a version 3.20.2 Actualizando BD de negocios a version 3.20.3 Actualizando BD de negocios a version 3.21.0 Ejecutando Archivo: 001607.sql . Ejecutando Archivo: 001608.sql . Ejecutando Archivo: 001609.sql . Ejecutando Archivo: 001610.sql . Ejecutando Archivo: 001611.sql . Ejecutando Archivo: 001612.sql . Ejecutando Archivo: 001613.sql . Ejecutando Archivo: 001614.sql . Ejecutando Archivo: 001615.sql

ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42501
[MENSAJE]: ERROR: permission denied: “RI_ConstraintTrigger_a_3776763” is a system trigger
[SQL EJECUTADA]: – +++++++++++++++++++++++++++++++++++++++
– Script de conversión 001615.sql
– +++++++++++++++++++++++++++++++++++++++
– BEGIN WORK;

ALTER TABLE par_parametros_sistema DISABLE TRIGGER ALL;
ALTER TABLE par_parametros_sistema_valores DISABLE TRIGGER ALL;
ALTER TABLE par_param_sist_valores DISABLE TRIGGER ALL;
ALTER TABLE par_parametros_etiquetas DISABLE TRIGGER ALL;

UPDATE par_parametros_sistema SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_parametros_sistema_valores SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_parametros_etiquetas SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_param_sist_valores SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;

ALTER TABLE par_parametros_sistema ENABLE TRIGGER ALL;
ALTER TABLE par_parametros_sistema_valores ENABLE TRIGGER ALL;
ALTER TABLE par_parametros_etiquetas ENABLE TRIGGER ALL;
ALTER TABLE par_param_sist_valores ENABLE TRIGGER ALL;

– COMMIT WORK;
– +++++++++++++++++++++++++++++++++++++++
– Fin Script de conversión 001615.sql
– +++++++++++++++++++++++++++++++++++++++

Hubo errores en la migraci?n.

La base de datos está alojada en una instancia RDS en AWS (PostgreSQL 11.16).
El problema, en principio, es que AWS se reserva el uso del “superuser”, rol que es necesario para desactivar todos los triggers.
Tendrán alguna forma alternativa, modificando el script, o lo que sea necesario, para lograr ejecutarlo?

Muchas gracias.

Cambien en ese script ALL por USER, quedando:

ALTER TABLE par_parametros_sistema DISABLE TRIGGER USER;
ALTER TABLE par_parametros_sistema_valores DISABLE TRIGGER USER;
ALTER TABLE par_param_sist_valores DISABLE TRIGGER USER;
ALTER TABLE par_parametros_etiquetas DISABLE TRIGGER USER;

.....
......

ALTER TABLE par_parametros_sistema ENABLE TRIGGER USER;
ALTER TABLE par_parametros_sistema_valores ENABLE TRIGGER USER;
ALTER TABLE par_parametros_etiquetas ENABLE TRIGGER USER;
ALTER TABLE par_param_sist_valores ENABLE TRIGGER USER;

Muchas gracias Alejandro. Ya había probado ese cambio, pero me daba este otro error:

ERROR ejecutando SQL: [CODIGO]: 7 [SQLSTATE]: db_23503 [MENSAJE]: ERROR: update or delete on table "par_parametros_sistema" violates foreign key constraint "fk_par_parametros_etiquetas_par_parametros_sistema" on table "par_parametros_etiquetas" DETAIL: Key (parametro)=(pro_ver_optativas_en_estrucutura_plan) is still referenced from table "par_parametros_etiquetas".

Lo que terminé haciendo es modificar el sript para que elimine 2 fk que saltaban por estar referenciadas, y dejé el script 001615.sql de la siguiente forma:

-- +++++++++++++++++++++++++++++++++++++++ -- Script de conversión 001615.sql -- +++++++++++++++++++++++++++++++++++++++ -- BEGIN WORK;

– elimino los FK conflictivos
– Constraint: fk_par_parametros_etiquetas_par_parametros_sistema
ALTER TABLE IF EXISTS negocio.par_parametros_etiquetas DROP CONSTRAINT IF EXISTS fk_par_parametros_etiquetas_par_parametros_sistema;
– Constraint: fk_par_parametros_sistema_valores_par_parametros_sistema
ALTER TABLE IF EXISTS negocio.par_parametros_sistema_valores DROP CONSTRAINT IF EXISTS fk_par_parametros_sistema_valores_par_parametros_sistema;

– cambio DISABLE TRIGGER ALL por DISABLE TRIGGER USER
ALTER TABLE par_parametros_sistema DISABLE TRIGGER USER;
ALTER TABLE par_parametros_sistema_valores DISABLE TRIGGER USER;
ALTER TABLE par_param_sist_valores DISABLE TRIGGER USER;
ALTER TABLE par_parametros_etiquetas DISABLE TRIGGER USER;

– ningún cambio realizado
UPDATE par_parametros_sistema SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_parametros_sistema_valores SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_parametros_etiquetas SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;
UPDATE par_param_sist_valores SET parametro = ‘pro_ver_optativas_en_estructura_plan’ WHERE parametro = ‘pro_ver_optativas_en_estrucutura_plan’;

– cambio ENABLE TRIGGER ALL por ENABLE TRIGGER USER
ALTER TABLE par_parametros_sistema ENABLE TRIGGER USER;
ALTER TABLE par_parametros_sistema_valores ENABLE TRIGGER USER;
ALTER TABLE par_parametros_etiquetas ENABLE TRIGGER USER;
ALTER TABLE par_param_sist_valores ENABLE TRIGGER USER;

– creo nuevamente los FK eliminados
ALTER TABLE IF EXISTS negocio.par_parametros_etiquetas
ADD CONSTRAINT fk_par_parametros_etiquetas_par_parametros_sistema FOREIGN KEY (parametro)
REFERENCES negocio.par_parametros_sistema (parametro) MATCH SIMPLE
ON UPDATE RESTRICT
ON DELETE RESTRICT;

ALTER TABLE IF EXISTS negocio.par_parametros_sistema_valores
ADD CONSTRAINT fk_par_parametros_sistema_valores_par_parametros_sistema FOREIGN KEY (parametro)
REFERENCES negocio.par_parametros_sistema (parametro) MATCH SIMPLE
ON UPDATE RESTRICT
ON DELETE RESTRICT;

– COMMIT WORK;
– +++++++++++++++++++++++++++++++++++++++
– Fin Script de conversión 001615.sql
– +++++++++++++++++++++++++++++++++++++++

Ejecutándolo de esta forma el proceso de migración de la DB de 3.20.0 a 3.21.0 finalizó correctamente.

Si, es correcto la modificación que realizaste.
La clausula USER no deshabilta las foreign keys contrainst.