Migración de G2 a G3

Hola, buenos días. Estamos tratando de migrar la base de la Facultad de Agronomía de G2 a G3.

La versión de G3 es la 3.19.1.

El problema que estamos teniendo es que tienen una propuesta en común con la Facultad de Veterinarias que ya se encuentra en G3.

Ya esta colocado que no se migre.
imagen

El problema surge en el paso 10.Matriculas (https://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.19.0/Migracion/Desde_SIU_Guarani_2/Migracion/Modulos/Matricula)

Tira error en de llave duplicada que detectamos que son los alumnos que ya existen en la propuesta en G3.

Realice la siguiente consulta para ver cuales son los alumnos que ya existen en G3:
SELECT
cpa.alumno,
sa.legajo,
cpp.persona,
cppr.propuesta,
cppv.plan_version,
nsa.alumno,
nsa.propuesta,
nsa.plan_version
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,
negocio.sga_alumnos AS nsa
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 
AND nsa.persona=cpp.persona AND nsa.propuesta=cppr.propuesta
;

Mi idea es cambiar el atributo alumno de la tabla “_cnv_pk_alumnos” con el valor de sga_alumno de G3 para ver si puedo avanzar.

Me gustaría saber como continuar. Muchas gracias

Realice una actualización de los atributos.

UPDATE
	mig._cnv_pk_alumnos AS cpa
SET
	alumno=nsa.alumno
FROM
	mig.sga_alumnos as sa,
	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,
	negocio.sga_alumnos AS nsa
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
	AND nsa.persona=cpp.persona AND nsa.propuesta=cppr.propuesta
;

Y modifique el archivo 04_sga_alumnos.sql de migración:

...
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
	-- Modificado por Sergio Fernando Sanz
	and not EXISTS(SELECT * FROM negocio.sga_alumnos WHERE persona=cpp.persona AND propuesta=cppr.propuesta)
	;
...

Me dejo terminar ‘mig_matriculas’.

Se logro realizar la migración, van a comenzar con el paralelo para ver si todo quedo funcionando de manera correcta.

Gracias Fernando por comentarnos que pudieron realizar la migración y avanzar con ello!
Saludos.