2017/04/12 15:05:13 - 03_migrar_comisiones - ERROR: inserción o actualización en la tabla «sga_comisiones_instancias» viola la llave foránea «fk_sga_comisiones_instancias_sga_comisiones»
Detail: La llave (comision)=(582) no está presente en la tabla «sga_comisiones».
la linea en mig_comisiones.csv seria esta
A|2014|Período 1|T0193-002|1||1|migracion|S|101|S|103
Lo que sucede es que la comision esa no fue registrada.
Por favor fijate si alguna de estas dos consultas devuelve filas.
Si devuelve son las comisiones que no se insertaron… (mirá si esta esta comision que dio error al insertar en sga_comisiones_instancias).
SELECT com.comision, com.nombre
FROM ext.mig_comisiones as com
WHERE com.instancia_regular = 'S'
EXCEPT
SELECT com.comision, com.nombre
FROM ext.mig_comisiones as com,
ext.mig_periodos_lectivos as per,
sga_elementos as elem
WHERE com.anio_academico = per.anio_academico
AND com.periodo_lectivo_nombre = per.nombre
AND com.actividad_codigo = elem.codigo
AND com.instancia_regular = 'S';
SELECT com.comision, com.nombre
FROM ext.mig_comisiones as com
WHERE com.instancia_promocion = 'S'
EXCEPT
SELECT com.comision, com.nombre
FROM ext.mig_comisiones as com,
ext.mig_periodos_lectivos as per,
sga_elementos as elem
WHERE com.anio_academico = per.anio_academico
AND com.periodo_lectivo_nombre = per.nombre
AND com.actividad_codigo = elem.codigo
AND com.instancia_promocion = 'S';
En caso de devolver datos, lo que sucede que cuando se inserta en la tabla de comisiones, se hace join con la tabla de migracion de periodos lectivos (ext.mig_periodos_lectivos) y con la tabla de actividades (sga_elementos). No asi al insertar datos en la tabla de instancias de las comisiones.
Con estas consultas podras verificar que comision fue la que no se insertó. O es porque le definiste datos de un periodo lectivo que no existe o de una actividad que no existe. Ajusta esos datos y deberías poder correr este script de migracion sin problemas.
El precontrol de que exista la actividad en la base esta, con lo cual ese no debería ser el problema, salvo que te haya dado el error en el pre-control y no lo viste.
Podes correr los pre controles de calendario academico con lo siguiente:
select * from ext.sp_ctrl_calend();
Fijate si al correrlo devuelve algun mensaje de advertencia o error.