error en script 04 mig_matricula

Hola:
Estoy en el script de migración de matricula (04), y me tira el error:
Detail: Ya existe la llave (persona, propuesta)=(5479, 1).

El asunto es que no encuentro, de que tabla esta sacando estos datos para borrar el registro duplicado. Esto lo hace de sga_alumnos? o sga_carrera_aspira? porque no encuentro el registro.
Saludos

Rodrigo, si queres identificar donde se produce el error podes editar el script y correr las queries de a una en el pgadmin.
Saludos,
Noemi

Noemí:
Haciendo eso, me tira dos personas, y en las dos están iguales, primero están como RR, en carrera aspira y luego como AC, o sea, fueron rechados y después no se le genero el legajo.
Voy a borrar uno de los registros, y te aviso cualquier cosa. Gracias
Saludos

Noemi:

Ahora me da otro error, en el script 33
2014/10/10 10:12:10 - mig_Matricula - Entrada de comienzo [33_sga_readmisiones]

2014/10/10 10:12:10 - 04_sga_alumnos - ERROR: no existe la columna reg.perdida_regular
Position: 797

Ahi no tengo idea porque, ya que copio el select y lo corro por pgadmin y me tira datos sin problemas, pero al correrlo por spoon, no funciona.

Saludos

Rodrigo, modifica en el script el nombre del campo ‘reg.perdida_regular’ por ‘reg.perdida_regul’ y volve a probar.
Saludos.

Listo Noemi, ya paso.
Gracias

Hola
Estoy haciendo una migración de G2 a G3 (v3.20.0).
Es sobre una base de G3 que ya tiene varias RA.
Al correr el módulo mig_matricula, da error en el script 04.

Couldn’t execute SQL: SELECT * FROM mig.get_script_corrido( 4,‘MATRICULA’) ;
04_sga_alumnos - ERROR: llave duplicada viola restricción de unicidad «iu_sga_alumnos_persona_propuesta»
04_sga_alumnos - Detail: Ya existe la llave (persona, propuesta)=(90907, 265).

Mirando las consultas de dicho script, veo que la primera es la que da el error:

INSERT INTO sga_alumnos(alumno,legajo,persona,propuesta,plan_version,ubicacion,modalidad,cnt_readmisiones,regular,calidad)
SELECT	
	cpa.alumno,
	sa.legajo,
	cpp.persona,
	cppr.propuesta,
	cppv.plan_version,
	cps.ubicacion,
	'P', -- Presencial
	sa.cnt_readmisiones,
	sa.regular,
	CASE 
	  WHEN sa.calidad = 'A' THEN 'A' 
	  WHEN sa.calidad = 'E' THEN 'P'  
	  WHEN sa.calidad = 'P' THEN 'P' 
	  WHEN sa.calidad = 'N' THEN 'P' 
	  ELSE 'P' 
	END
FROM	
	mig.sga_alumnos as sa,
	mig._cnv_pk_alumnos as cpa,
	mig._cnv_pk_personas as cpp,
	mig._cnv_pk_propuestas as cppr,
	mig.sga_planes as sp,
	mig._cnv_pk_planes_versiones as cppv,
	mig._cnv_pk_sedes as cps
WHERE	
	cpa.tabla = 'sga_alumnos' AND 
	sa.unidad_academica = cpa.unidad_academica AND
	sa.carrera = cpa.carrera AND
	sa.legajo = cpa.legajo AND
	
	cpp.unidad_academica = sa.unidad_academica AND
	cpp.nro_inscripcion = sa.nro_inscripcion AND

	cppr.unidad_academica = sa.unidad_academica AND
	cppr.carrera = sa.carrera AND

	cps.sede = sa.sede AND

	sp.unidad_academica = sa.unidad_academica AND
	sp.carrera = sa.carrera AND
	sp.plan = sa.plan AND

	cppv.unidad_academica = sp.unidad_academica AND
	cppv.carrera = sp.carrera AND
	cppv.plan_g2 = sp.plan AND
	cppv.version = sp.version_actual
	;

Mirando las tablas del esquema mig: sga_alumnos, sga_carrera_aspira, sga_personas, no veo que esté duplicado ni nada.
Es una persona que con mismo nro_inscripcion y legajo, está inscripto en 2 carreras distintas.

carreralegajoplannro_inscripcion
MBAOLPFCE-100620161006
M25PFCE-100620181006

Qué puede estar sucediendo?
La persona ya existe desde antes en la base de G3. Pero no la propuesta.
Gracias por la orientación.
Saludos
Iris

El SELECT del INSERT que esta fallando, devuelve dos veces un registro con el dato persona=90907 y propuesta= 265?

Podes verificar si hay registros duplicados para la combinacion propuesta-persona:

SELECT cpp.persona, cppr.propuesta
FROM
mig.sga_alumnos as sa,
mig._cnv_pk_alumnos as cpa,
mig._cnv_pk_personas as cpp,
mig._cnv_pk_propuestas as cppr,
mig.sga_planes as sp,
mig._cnv_pk_planes_versiones as cppv,
mig._cnv_pk_sedes as cps
WHERE
cpa.tabla = ‘sga_alumnos’ AND
sa.unidad_academica = cpa.unidad_academica AND
sa.carrera = cpa.carrera AND
sa.legajo = cpa.legajo AND

cpp.unidad_academica = sa.unidad_academica AND
cpp.nro_inscripcion = sa.nro_inscripcion AND

cppr.unidad_academica = sa.unidad_academica AND
cppr.carrera = sa.carrera AND

cps.sede = sa.sede AND

sp.unidad_academica = sa.unidad_academica AND
sp.carrera = sa.carrera AND
sp.plan = sa.plan AND

cppv.unidad_academica = sp.unidad_academica AND
cppv.carrera = sp.carrera AND
cppv.plan_g2 = sp.plan AND
cppv.version = sp.version_actual

GROUP BY cpp.persona, cppr.propuesta
HAVING COUNT(*) > 1;

¿O ya existe un registro en la tabla de alumnos con estos datos de perosna y propuesta?
select * from sga_alumnos where persona = 90907 and propuesta = 265;

Hola Alejandro.
Esa consulta no devuelve a ningún alumno repetido.
Seguí indagando y había quedado algo mal en la migración de la base anterior sobre la base de G3.
Ya lo pudimos resolver.
Muchas gracias!
Saludos
Iris