Migración a 3.17 / Generales / Paso 15 / Hay dos columnas de más

Estimados, en el paso 15 este insert da error. Según vi hay dos columnas en la tabla que no están contempladas en el insert y dan
error por quedar en NULL. Borré las columnas de la tabla int_arau_instituciones para que queden sólo las del insert para poder seguir.
Lo probé en una instalación desde 0 de Guaraní 3.17.

INSERT INTO int_arau_instituciones(institucion_araucano,nombre)
SELECT
instituc_araucano,
nombre
FROM mig.int_arau_instituc
WHERE instituc_araucano NOT IN (SELECT institucion_araucano FROM int_arau_instituciones);

Saludos,
Lisandro.-

Si quedo mal ese script, ya que la tabla “int_arau_instituciones” cambió en 3.17 (se agregaron las columnas institucion e institucion_nombre). Por tal motivo no va a poder migrarse las instituciones desde Guarani 2 porque no se pueden inventar esos datos.

Al convertir la base a 3.17 se debió completar la tabla int_arau_instituciones con el catálogo completo de instituciones Araucano.
Si borraste los datos de la tabla, podes tomar el archivo con los datos y volver a cargar la tabla. Archivo \BD\Datos_nucleo\Datos\int_arau_instituciones.dca

Por lo que veo este script intentó insertar instituciones que tenias registradas en Guarani 2 que no existen en Guarani 3. Esto se dio porque habias borrado la tabla de G3?
Porque si es no asi tenes que ver que instituciones de Araucano tenes en Guarani 2 que no no fueron reportadas por Araucano cuando creamos el catalogo de instituciones en la version 3.17.

Deberías comentar ese insert en el script de migracion, para que no se realice la migracion de esa tabla. Script \10_Generales\02_Migracion\15_int_araucano_instituciones.sql.

Hola Alejandro, lo que estoy haciendo es adaptar todo el proceso de migración que ya tenía armado (para 3.16) para que funcione con la 3.17 sobre una instalación limpia de G3, a la que yo no agrego ni quito nada antes de empezar a migrar.

Veo de nuevo cómo está esta tabla antes y después de migrar para ver cómo lo puedo resolver de la mejor manera. Hice lo de comentar el INSERT para poder seguir y terminar con la migración. Lo raro es que el primer error salta cuando quiere insertar datos de la Universidad Católica (que creo que tiene el código 32). Digo raro porque asumo que eso ya debe venir con G3.

Saludos.

Las instituciones de araucano que estan en el catalogo son las siguientes:

SELECT * FROM int_arau_instituciones WHERE institucion = 32;

Las que tengas registradas en Guarani 2 debería ser alguna de las que se devuelve en la columna “institucion_araucano”.

Alejandro, te paso las instituciones que tengo en G2 y que no están en G3. Si comento ese INSERT, el proceso sigue pero cuando quiero setear los datos
de la institución en el último paso de la migración me dice que no encuentra mi institución (104).

2019/09/02 16:44:31 - Nombre de la institución - Couldn't execute SQL: UPDATE negocio.sga_instituciones
SET nombre=(SELECT nombre FROM mig.sga_unidades_acad),
nombre_abreviado=(SELECT nombre FROM mig.sga_unidades_acad),
codigo=(SELECT unidad_academica FROM mig.sga_unidades_acad),
localidad=(SELECT localidad FROM mig.sga_unidades_acad),
calle=(SELECT calle FROM mig.sga_unidades_acad),
numero=(SELECT numero FROM mig.sga_unidades_acad),
codigo_postal=(SELECT codigo_postal FROM mig.sga_unidades_acad),
telefono=(SELECT te FROM mig.sga_unidades_acad),
email=(SELECT e_mail FROM mig.sga_unidades_acad),
institucion_araucano=(SELECT instituc_araucano FROM mig.sga_unidades_acad)
WHERE institucion=1
2019/09/02 16:44:31 - Nombre de la institución - 
2019/09/02 16:44:31 - Nombre de la institución - ERROR: inserción o actualización en la tabla «sga_instituciones» viola la llave foránea «fk_sga_instituciones_int_arau_instituciones»
  Detail: La llave (institucion_araucano)=(104) no está presente en la tabla «int_arau_instituciones».

EDIT: Yo a esto lo puedo corregir agregando el registro que necesito así (como figura en G2):

INSERT INTO 
int_arau_instituciones(
institucion_araucano,
nombre,
institucion,
institucion_nombre)
VALUES
(104,
'Universidad del Centro Educativo Latinoamericano',
104,
'Universidad del Centro Educativo Latinoamericano');

La duda es por las otras instituciones que me faltan.

En la tabla de G3 hay 1398 registros, y según esta consulta (la que se usa con el insert en el paso que menciono en el asunto) le faltan 455 que tengo en G2.

SELECT   
   instituc_araucano,
   nombre
FROM mig.int_arau_instituc
WHERE instituc_araucano NOT IN (SELECT institucion_araucano FROM  int_arau_instituciones);

En el archivo adjunto está el resultado de esta query.


instituciones que faltan.txt (18.9 KB)

En le catálogo de instituciones de la 104 (Universidad del Centro Educativo Latinoamericano) tenemos registrado:

601 = Facultad de Ciencias Económicas y Empresariales
602 = Facultad de Química
2571 = Facultad de Ciencias Jurídicas y Sociales
2737 = Secretaría de Relaciones Internacionales
2989 = Sede Venado Tuerto
2999 = Extensión Aúlica Casilda
3286 = Extensión Aúlica Villa Constitución
3301 = Extensión Aúlica Marcos Juarez

Otra opción es modificar el script de migración y el insert de las instituciones Araucano que faltan quede asi:

INSERT INTO int_arau_instituciones(institucion_araucano,nombre, institucion, institucion_nombre) SELECT instituc_araucano, nombre, instituc_araucano, nombre FROM mig.int_arau_instituc WHERE instituc_araucano NOT IN (SELECT institucion_araucano FROM int_arau_instituciones);

Revisaremos si faltan instituciones y completaremos el catálogo de ser asi.

Alejandro, después de estudiar el tema veo que ese 104 que no existe es, según parece, por un error en nuestra base G2. Lo voy a seguir revisando pero este hilo se puede dar por solucionado ya que la consulta inicial fue resuelta.

Saludos cordiales,
Lisandro.-

Hola Gente, el 104 es el codigo de la Universidad y en ese codigo no hay ofertas academicas por lo tanto no se informa nada con ese codigo, la informacion va con todos los otros codigos de dependencia !!! que dependen de la 104.
Abrazo

Perfecto, es lo que vi hoy revisando los datos con la referente funcional. Muchas gracias.