Hola a todos!!!
Estoy migrando de 2.9.4 con script de migración 3.13.1, y me está dando error el módulo de MATRICULAS que con 2.9.3 y script 3.13.0, no me daba.
El error es “2017/09/07 10:10:24 - 04_sga_alumnos - ERROR: llave duplicada viola restricción de unicidad «sga_alumnos_alumno_key» Detail: Ya existe la llave (alumno)=(32288).”
El sql es el 04_sga_alumnos.sql y el problema está en el siguiente insert:
– 1. Inscripciones rechazadas
INSERT INTO sga_alumnos(alumno, persona,propuesta,plan_version,ubicacion,modalidad,cnt_readmisiones,regular,calidad)
SELECT
cpa.alumno,
cpp.persona,
cppr.propuesta,
cppv.plan_version,
mig.get_default(‘ubicacion’)::integer,
‘P’, – Presencial
0,
‘S’,
CASE
WHEN ca.situacion_asp = ‘AC’ THEN ‘A’ – Activo
WHEN sit.resultado_asp = ‘R’ THEN ‘P’ – Pasivo
ELSE ‘A’
END
FROM
mig._cnv_pk_alumnos as cpa,
mig._cnv_pk_propuestas_aspira as mpa,
mig.sga_carrera_aspira as ca,
mig.sga_situacion_asp as sit,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv
WHERE
cpa.tabla = ‘sga_carrera_aspira’ AND
mpa.unidad_academica = cpa.unidad_academica AND
mpa.carrera = cpa.carrera AND
mpa.nro_inscripcion = cpa.nro_inscripcion AND
ca.unidad_academica = mpa.unidad_academica AND
ca.carrera = mpa.carrera AND
ca.nro_inscripcion = mpa.nro_inscripcion AND
ca.periodo_inscripcio = mpa.periodo_inscripcio AND
sit.situacion_asp = ca.situacion_asp AND
sit.resultado_asp = 'R' AND -- Aspirante Rechazados
-- NOT EXISTS (SELECT alumno FROM sga_alumnos as a WHERE a.alumno = cpa.alumno) AND
NOT EXISTS (SELECT alumno FROM sga_alumnos as a WHERE a.propuesta = cppr.propuesta AND a.persona = cpp.persona) AND -- no exista la persona en la propuesta
cpp.unidad_academica = cpa.unidad_academica AND
cpp.nro_inscripcion = cpa.nro_inscripcion AND
cppr.unidad_academica = cpa.unidad_academica AND
cppr.carrera = cpa.carrera AND
sp.unidad_academica = cpa.unidad_academica AND
sp.carrera = cpa.carrera AND
sp.estado = 'V' AND -- Plan vigente (Ultimo plan de la carrera que entro en vigencia)
cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual
Veo que no hubo modificaciones al script 04_sga_alumnos.sql desde la versión 3.13.0, por lo que supongo que el problema viene del algún script anterior.
El SELECT devuelve lo siguiente, para esa clave:
32288;12829;7;267;1;“P”;0;“S”;“P”
32288;12829;7;267;1;“P”;0;“S”;“P”
Efectivamente hay dos inscripciones rechazadas a la misma carrera para esta persona, les paso el contenido de mig.sga_carrera_aspira:
“REC”;“029”;“01-14203”;“INSCRIPCION 2011”;“2010-11-04”;“01”;“CI-11”;“D”;“”;“15”;“RF”;“”;1;“”;
“REC”;“029”;“01-14203”;“INSCRIPCION 2012”;“2011-11-02”;“01”;“CI-12”;“U”;“”;“15”;“RF”;“”;13;“”;
Gracias por su tiempo.
Saludos.
ANA