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

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.