Problema de foreing key al matricular ingresante desde preinscripción

Hola:

Tuvimos un problema al matricular ingresantes desde preinscripción. Estamos usando Guaraní 3.15.1 y preinscripción 3.8.0

En un caso en particular el proceso da error con una foreing key para el dato de Guaraní correspondiente a tipo_vivienda de la tabla mdp_datos_personales

Preinscripción pasa un valor 1 que no se condice con ningún valor de la tabla mdp_tipo_vivienda.

Foreign key violation: 7 ERROR:  inserción o actualización en la tabla 'mdp_datos_personales' viola la llave foránea  'fk_mdp_datos_personales_mdp_tipo_vivienda'
DETAIL:  La llave (tipo_vivienda)=(1) no est<E1> presente en la tabla 'mdp_tipo_vivienda'
[DEBUG][toba] ************ ABORTAR transaccion (toba_2_7@localhost) ****************
[ERROR][toba] toba_error_db: <p><b>SQLSTATE:</b> db_23503</p><p><b>CODIGO:</b> 7</p><p><b>MENSAJE:</b> ERROR:  inserción o actualización en la tabla 'mdp_datos_personales' viola la llave foránea  'fk_mdp_datos_personales_mdp_tipo_vivienda'
DETAIL:  La llave (tipo_vivienda)=(1) no está presente en la tabla  'mdp_tipo_vivienda'.</p><p><b>SQL:</b> INSERT INTO mdp_datos_personales
                                        dato_censal
                                        , estado_civil, situacion_padre, situacion_madre, cantidad_hijos, cantidad_familia, tipo_vivienda, vive_con, unido_hecho, cobertura_salud, periodo_lectivo_calle, periodo_lectivo_numero, periodo_lectivo_localidad, periodo_lectivo_barrio, periodo_lectivo_codigo_postal, procedencia_calle, procedencia_numero, procedencia_localidad, procedencia_barrio, procedencia_codigo_postal, es_celiaco
                                ) 
                                VALUES 
                                (
                                        '34327'
                                        , '1', 'V', 'V', '0', '0', '1', '3', 'N', '1', 'CANDELARIA', '252', '13217', 'SUAREZ', '5501', 'CANDELARIA', '252', '13217', 'SUAREZ', '5501', 'N'
                                )

Mirando el código de preinscripción vemos que el dato que Guaraní carga como tipo_vivienda en mdp_datos_personales proviene del campo tipo_res_per_lect de la tabla sga_preinscripcion.

Sin embargo no entendemos por qué algunos ingresantes pudieron elegir la opción 1 ya que al parecer las opciones correspondientes al tipo de vivienda se traen desde Guaraní gestión llamando a la función get_tipo_vivienda en el archivo siu/modelo/g3/consultas_bd/tipos_vivienda.php

Según los diferenciales de la BD los valores 1, 2 y 3 se eliminaron de la base de datos en 3.14.0. Nosotros la preinscripción la hicimos estando en 3.15.1

Por ahora solucionamos el problema poniendo el campo tipo_res_per_lect a NULL

¿A qué se deberá el problema?

Buen día, ¿Estos sistemas fueron instalados de cero o son actualizaciones de versiones anteriores?

Preinscripción fue instalada desde cero

Guaraní fue migrado de Guaraní 2 a 3.14 y luego a 3.15.1

¿Podría ser que al instalar preinscripción 3.8 mantuvieran datos de una versión anterior?

Eso puede explicar los datos desfasados

No, comenzamos con la base desde cero cuando instalamos 3.8