Error al actualizar de 3.13 a 3.14

Estimados:

Estoy intentando actualizar gestion de 3.13 a 3.14 en un ambiente de prueba sin personalizaciones.
Hago todos los pasos y, cuando llego a migrar_base me tira el siguiente error.

Revisando la base de datos, veo que la tabla “sga_docentes_responsabilidades” no existe, efectivamente. Me estoy perdiendo algo?
Gracias.

. Ejecutando Archivo: 000959.sql
ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_23503
[MENSAJE]: ERROR: insert or update on table “gdu_comision” violates foreign key constraint “fk_gdu_comision_sga_docentes_responsabilidades”
DETAIL: Key (responsabilidad)=(1) is not present in table “sga_docentes_responsabilidades”.
CONTEXT: SQL statement “INSERT INTO gdu_comision (responsabilidad, derecho) VALUES ( 1, ‘comision_ver_encuestas_docente’)”
PL/pgSQL function inline_code_block line 12 at SQL statement
[SQL EJECUTADA]: – +++++++++++++++++++++++++++++++++++++++
– Script de conversi▒n 000959.sql
– +++++++++++++++++++++++++++++++++++++++
– BEGIN WORK;
DO $BODY$
DECLARE cant INTEGER;
BEGIN
SELECT COUNT(*) INTO cant FROM gdu_derechos WHERE derecho = ‘comision_ver_encuestas_docente’;
– Si existe el campo entonces ejecuto el script
IF cant = 0 THEN
INSERT INTO gdu_derechos (derecho, nombre, descripcion, derecho_para)
VALUES (‘comision_ver_encuestas_docente’, ‘Ver respuestas de encuestas sobre otros docentes de la comisi▒n’, ‘Ver respuestas de encuestas sobre otros docentes de la comisi▒n’, ‘C’);
INSERT INTO gdu_comision (responsabilidad, derecho) VALUES ( 1, ‘comision_ver_encuestas_docente’);
– Registro este nuevo derecho en los docentes de la comision segun la configuraci▒n del derecho y responsabilidad docente
– El except se agrega porque el trigger de insert de gdu_comision inserto registros para las comisiones de periodos lectivos que no finalizaron.
INSERT INTO gdu_derechos_personas (entidad, derecho, persona)
SELECT sga_comisiones.entidad,
gdu_comision.derecho,
sga_docentes.persona
FROM gdu_comision,
sga_docentes_comision,
sga_comisiones,
sga_docentes
WHERE gdu_comision.derecho = ‘comision_ver_encuestas_docente’
AND sga_docentes_comision.comision = sga_comisiones.comision
AND sga_docentes_comision.responsabilidad = gdu_comision.responsabilidad
AND sga_comisiones.comision = sga_docentes_comision.comision
AND sga_docentes.docente = sga_docentes_comision.docente
EXCEPT
SELECT entidad,
derecho,
persona
FROM gdu_derechos_personas
WHERE derecho = ‘comision_ver_encuestas_docente’;
END IF;
END $BODY$;
– COMMIT WORK;
– +++++++++++++++++++++++++++++++++++++++
– Fin Script de conversi▒n 000959.sql
– +++++++++++++++++++++++++++++++++++++++
Hubo errores en la migraci▒n.

Buenas tardes Claudio, el error dice que no tenes la responsabilidad 1 en la tabla sga_docentes_responsabilidades. Por lo que puedo intuir no es un error de que la tabla no existe.
Fijate si tenes el registro con responsabilidad 1 en dicha tabla.

SELECt * FROM negocio.sga_docentes_responsabilidades WHERE responsabilidad = 1;

Saludos.

Hola, Jose.

Tenes razón, la tabla existe pero no hay registro con el id 1. (adjunto imagenes).
Se te ocurre que puede estar pasando?

Pd: perdon por el tiempo que pasó hasta que respondí pero me agarraron con otras cosas.

Saludos.


db.png

db.png

db2.png

db2.png

Buenas tardes, es raro que no tengas la responsabilidad 1 dentro la de tabla. Sabes si por alguna razón la misma fue borrada ?
Podrías consultar esta tabla para saber quien la borro?

negocio_auditoria.logs_sga_docentes_responsabilidades

Saludo.s

Tengo un solo update y dos insert. (adjunto imagen)


db3.png

db3.png

Buenos días Claudio, consulta.
Ustedes migraron desde G2 o desde un sistema externo?
Podrías por favor adjuntarnos una imagen de las tablas app_versiones y app_versiones_base?
Tenes idea si por alguna razón han borrado las responsabilidades de los docentes que salen desde el Siu.

Saludos.

Jose:

Nuestra universidad arrancó en 2012 y siempre usamos Guaraní 3.
Te adjunto un zip con dos csv del contenido de esas tablas.

Estoy bastante seguro (siempre hay posibilidad de error) que no borramos esos datos por base de datos. No hacemos ningun insert, update o delete en produccion sin una nota avalandolo, y no hay ninguna nota diciendo eso en la carpeta correspondiente.

Estuve revisando las tablas que me pediste. Vos crees que me falto correr algun diferencial en algun momento? Tengo alguna forma de revisarlo?

Saludos y gracias por la ayuda.


foro14109.zip (4.68 KB)

Buenas Claudio, para poder terminar de migrar la base deberían hacer lo siguiente:
Correr el archivo que se encuentra en BD/Datos/_nucleo/Datos/sga_docentes_responsabilidades.dca, luego a las responsabilidades nuevas agregadas, le asignaremos el estado baja.


UPDATE sga_docentes_responsabilidades SET estado = 'B' WHERE responsabilidad < 101

Luego de hacer estos pasos probá nuevamente de correr el migrar_base.

Saludos.

Espectacular, muchas gracias!