Hola gente les comento que esta semana hicimos el cambio de versión a la 3.7.0 y se vé que tenemos algunos problemas de datos con los esquemas toba_mapuche y ahora surgió otro con toba_mapuche_logs.
Comienzo:
- Al hacer el cambio de versión nos tiró errores con un perfil de usuarios que accede al proyecto toba_usuarios (perfil de logs). nos tiró el siguiente error:
[2019-11-01 10:18:28] MAIN.ERROR: 0 - SQL ERROR: SQLSTATE[23503]: Foreign key violation: 7 ERROR: inserción o actualización en la tabla «apex_usuario_proyecto» viola la llave foránea «apex_usu_proy_fk_grupo_acc» DETAIL: La llave (proyecto, usuario_grupo_acc)=(toba_usuarios, logs) no está presente en la tabla «apex_usuario_grupo_acc». INSERT INTO apex_usuario_proyecto (proyecto, usuario_grupo_acc, usuario, usuario_perfil_datos) VALUES ('toba_usuarios', 'logs', 'prueba', NULL);La solución que encontramos fue desvincular a todos los usuarios que tienen ese perfil funcional "logs" que accede al proyecto toba_usuarios. Luego hicimos el cambio de versión y el perfil funcional "logs"no fue creado por lo que volvimos a crearlo manualmente.
Como sé donde buscar que es lo que está haciendo ruido acá?
- Realizando el cambio de versión nos dió 2 errores mas en perfiles funcionales. Los perfiles “liquidacion” y “liquidacion_1” al parecer tenían errores de datos pero siguió el cambio de versión y terminó OK. Los mensajes que dieron fueron estos:
log de postgresql
2019-11-01 10:00:41.373 -03 [2628] mapuche@siu DETALLE: La llave (proyecto, item)=(mapuche, 53000015) no está presente en la tabla «apex_item». 2019-11-01 10:00:41.373 -03 [2628] mapuche@siu SENTENCIA: INSERT INTO apex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item_id, item) VALUES ('mapuche', 'liquidacion', NULL, '53000015'); 2019-11-01 10:00:41.417 -03 [2628] mapuche@siu ERROR: inserción o actualización en la tabla «apex_usuario_grupo_acc_item» viola la llave foránea «apex_usu_item_fk_item» 2019-11-01 10:00:41.417 -03 [2628] mapuche@siu DETALLE: La llave (proyecto, item)=(mapuche, 53000015) no está presente en la tabla «apex_item». 2019-11-01 10:00:41.417 -03 [2628] mapuche@siu SENTENCIA: INSERT INTO apex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item_id, item) VALUES ('mapuche', 'liquidacion_1', NULL, '53000015');
Log instalador.log
[2019-11-01 11:17:34] MAIN.INFO: [ TOBA ] ATENCION! No fue posible cargar por completo el 'perfil_liquidacion', posiblemente a causa de que al menos una operación, restricción o derecho ha dejado de existir en 'mapuche'. A continuación el detalle: ERROR ejecutando SQL: [CODIGO]: 7 [SQLSTATE]: db_23503 [MENSAJE]: ERROR: inserción o actualización en la tabla «apex_usuario_grupo_acc_item» viola la llave foránea «apex_usu_item_fk_item» DETAIL: La llave (proyecto, item)=(mapuche, 53000015) no está presente en la tabla «apex_item». [SQL EJECUTADA]: INSERT INTO apex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item_id, item) VALUES ('mapuche', 'liquidacion', NULL, '53000015'); De todas formas se continúa la carga, se recomienda revisar la definición de este perfil. [2019-11-01 11:17:34] MAIN.INFO: [ TOBA ] [2019-11-01 11:17:34] MAIN.INFO: [ TOBA ] ATENCION! No fue posible cargar por completo el 'perfil_liquidacion_1', posiblemente a causa de que al menos una operación, restricción o derecho ha dejado de existir en 'mapuche'. A continuación el detalle: [2019-11-01 11:17:34] MAIN.INFO: [ TOBA ] . [2019-11-01 11:17:34] MAIN.INFO: [ TOBA ] ERROR ejecutando SQL: [CODIGO]: 7 [SQLSTATE]: db_23503 [MENSAJE]: ERROR: inserción o actualización en la tabla «apex_usuario_grupo_acc_item» viola la llave foránea «apex_usu_item_fk_item» DETAIL: La llave (proyecto, item)=(mapuche, 53000015) no está presente en la tabla «apex_item». [SQL EJECUTADA]: INSERT INTO apex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item_id, item) VALUES ('mapuche', 'liquidacion_1', NULL, '53000015'); De todas formas se continúa la carga, se recomienda revisar la definición de este perfil. [2019-11-01 11:17:35] MAIN.INFO: [ TOBA ] .OK
Estos perfiles se migraron y quedaron funcionando para las personas que tenian asociados los 2 perfiles pero quiero saber que es lo que esta funcionando mal y como arreglarlo.
- Cuando termino el cambio de versión y quiero ingresar a Administración → Usuarios (luego de insertar en la tabla toba_mapuche.apex_usuario_proyecto los datos necesarios para que me dé acceso ya que antes del cambio de versión tuve que sacarle el permiso de acceder a este módulo a TODOS) me abre una ventana en blanco, vacía.
Según el log de apache2 el error está en que no encuentra el archivo ubicado en /usr/local/mapuche_370/vendor/siu-toba/framework/proyectos/toba_usuarios/metadatos_compilados/gene/toba_mc_gene__grupo_logs.php y buscandoló efectivamente no está. Copio el de la versión 3.6.1 y logro acceder.
Esto me estará rompiendo algo? Que importancia tiene este archivo?
- El mas importante! Al finalizar el cambio de versión el sistema anda un poco mas lento de lo normal pero lo empiezan a utilizar normalmente para carga de datos.
Hoy sigo revisando y detecté que en el esquema toba_mapuche_logs no migró las primary key y foreign keys de algunas tablas. Entre ellas las de apex_solicitud, apex_solicitud_browser, apex_solicitud_consola, etc.
De ahí surge la lentitud del sistema.
Mi consulta es si puedo correr estas restricciones para que se creen los indices adecuadamente o se va a romper todo?
Ví en el foro que alguien hizo un script para borrar datos de estas tablas que en mi caso llegan a 7 millones de registros. Se pueden borrar estos datos? se guardan sólo los accesos a las operaciones de los usuarios en estas tablas de éste esquema? Se puede hacer un truncate de todas las tablas de este esquema y volver a crear las pk y fk?