URGENTE: Error al regenerar en actualización de producción de 3.15.1 a 3.16.1

Hola, cómo están? estamos realizando la actualización de la 3.15.1 a la 3.16.1, ya tenemos que versión de 4 dígitos, todo bien hasta ahí, En el noveno paso, donde se tiene que hacer:


./toba instancia regenerar -i desarrollo

me da el siguiente error:


./toba instancia regenerar -i desarrollo
Desea conservar datos locales como usuarios y logs? (Si o No)
Si responde NO, se utilizaran los exportados el Sun 3-Feb-19 a las 12:02 
(s/n):n

+---------------------+
| BASE                |
+---------------------+
| postgres7           |
| 10.0.13.37          |
| guarani3            |
|                     |
| guarani3_produccion |
| 5432                |
| LATIN1              |
| desarrollo          |
+---------------------+
 Se guardaran los datos existentes en un schema backup

 ---------------------------------------------------------------------------------------------------
  Creaci�n de la instancia                                                                          
 ---------------------------------------------------------------------------------------------------

 Creando las tablas del framework..........................OK
 Cargando datos del nucleo............................OK

 guarani:
 --------

 Cargando datos globales.............OK
 Cargando componentes...........OK
 Cargando permisos........OK
 Eliminando perfiles editables............OK
 Cargando perfiles propios 
 ERROR ejecutando SQL:
  [CODIGO]: 7
  [SQLSTATE]: db_23503 
  [MENSAJE]: ERROR:  insert or update on table "apex_objeto_dependencias" violates foreign key constraint "apex_objeto_depen_fk_objeto_p"
 DETAIL:  Key (proyecto, objeto_proveedor)=(guarani, 588000004) is not present in table "apex_objeto".
  [SQL EJECUTADA]: SET CONSTRAINTS ALL IMMEDIATE;
 

 ___________________________________________________________________________________________________
 TIEMPO: 18,839 segundos

No hace falta comentar la gravedad de esto, estamos muy preocupados porque estamos en épocas de exámenes. Es Domingo y mañana se trabaja, decidimos realizar la actualización en este día porque nadie utiliza el sistema, pero el lunes comienza todo nuevamente.

No sé que es lo que estará pasando, porque el objeto si existe en la tabla apex_objeto, esto me tiene loco.

En fin, si pueden darme una mano, sería buenísimo! Trate de buscar si hubo alguien con este problema y parece que es la primera vez que pasa.

En fin, espero si alguien me tira una idea, el problema es cuando intenta hacer el SET CONSTRAINTS ALL IMMEDIATE;, trate de hacer que haga el deferred, pero al final, cuando quiere cerrar la transacción, tira el mismo error, como dije, el objeto 588000004 si existe en apex_objeto, no se porque pasa eso…

Saludos cordiales!

Hola Ricardo,

Por lo que veo en su rama de colab, el componente de identificador ‘588000004’ es un cuadro. Si te fijás, el cuadro está en los metadatos personalizados (https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unse/gestion/trunk/3.16.1/personalizacion/metadatos/componentes/nuevos/toba_ei_cuadro/comp_588000004.xml) pero NO está en los exportados (https://colab.siu.edu.ar/trac/guarani3/browser/nodos/unse/gestion/trunk/3.16.1/metadatos/componentes/toba_ei_cuadro/). Al ser referenciado como dependencia de un CI se produce un error. Entonces algún paso no se completó correctamente o en el orden esperado. Dado el estado pareciera que el paso en cuestión es “./guarani esquema_pers importar”.

Para remediar esto sobre la instalación 3.16.1:

  1. Revertir el commit [29003] donde quedaron las personalizaciones de metadatos exportadas de manera incompleta.
  2. Regenerar la instancia. Luego de esto tendrán “andando” la versión 3.16.1 nuestra, sin personalizaciones.
  3. Activar el esquema de personalizaciones.
  4. Chequear conflictos de personalizaciones.
  5. Importar las personalizaciones. En este paso van a ver algunos errores de FOREGIN KEY. Ante la pregunta “Desea importar este cambio de cualquier manera? (Si o No)” deben responder “Sí”. Esto lo hicieron así la vez anterior?
  6. Exportar las personalizaciones.
  7. Versionar las personalizaciones.

Cualquier inconveniente por favor consulten.
Saludos, Florencia.

Hola Florencia, mil gracias por contestar, ahora estamos de vuelta en la versión 3.15.1.5 en nuestra versión de 4 dígitos. Entonces debería crear una nueva versión de 4 dígitos para la 3.16.1 para que me traiga todo como debería?

Saludos!

Ricardo,

La versión 3.16.1.0 pueden descartarla, no les va a servir.
Todos estos pasos deberían hacerlos posicionados en una instalación de desarrollo de la rama ‘https://colab.siu.edu.ar/svn/guarani3/nodos/unse/gestion/trunk/3.16.1’. Las versiones de 4 dígitos sólo las utilizan en instalaciones de producción.
Luego de completar los pasos de mi posteo anterior van a poder crear una versión de 4 dígitos correcta.

Saludos, Florencia.

buenisimo! tenemos una instalación de la 3.16.1 en prueba, ahora hacemos eso! mil gracias flor!

Saludos!!!

Hola Flor, como estás? no me quier volver loco, pero cuando hago chequear conflicto me aparece esto:

administrador@guarani-dev:/opt/guarani$ bin/guarani esquema_pers conflictos
Ejecutado: 04/02/19 10:45:58
 Hubo un total de (1295) errores irresolubles y (125) errores resolubles. 
 Consulte el log para m�s detalles en /opt/guarani/personalizacion/logs/conflictos.log

1295 errores irresolubles???

me estoy muriendo de a poco, porfa ayudame con esto, hice tal cual me detallaste…

Saludos!

Ricardo,

Por lo que veo en tu rama de colab no revirtieron el changeset [29003]. O si pero no lo commitearon?

Saludos, Florencia.

Hola Flor, hice un svn update -r 29003, pensé que con eso bastaba, como debo hacer el commit a esa revisión?

Ricardo,

No era un update a la revisión [29003] sino un merge en reversa de dicha revisión. Ya lo hice yo en tu rama. Ahora sí, ejecutá “svn update” y seguí con el paso 2.

Saludos, Florencia.

Hola Flor, perdón, hice un update a la revisión, no me dí cuenta de hacer el merge, ahora lo se para la próxima! espero que no haya próxima!

Saludos!

Perdón nuevamente, ahora aparece esto al ver los conflictos:

administrador@guarani-dev:/opt/guarani$ bin/guarani esquema_pers conflictos
Ejecutado: 04/02/19 11:13:39
 Hubo un total de (769) errores irresolubles y (7) errores resolubles. 
 Consulte el log para m�s detalles en /opt/guarani/personalizacion/logs/conflictos.log

aunque bajaron notablemente los errores irresoluble, todavía son muchos…

la mayoría de los errores son parecidos a estos:

Conflictos del archivo comp_586000002.xml
        Errores fatales
                [F:2] Error de constraints en la tabla apex_objeto.
 El error no fue reconocido por el importador.
Postgres dijo: ERROR:  duplicate key value violates unique constraint "apex_objeto_pk"
DETAIL:  Key (objeto, proyecto)=(586000002, guarani) already exists..
 El sql conflictivo es: INSERT INTO apex_objeto (proyecto,objeto,clase_proyecto,clase,punto_montaje,nombre,colapsable,creacion,posicion_botonera) VAL$
                [F:2] Error de constraints en la tabla apex_objeto_eventos.
 El error no fue reconocido por el importador.
Postgres dijo: ERROR:  duplicate key value violates unique constraint "apex_objeto_eventos_pk"
DETAIL:  Key (evento_id, proyecto)=(586000003, guarani) already exists..
 El sql conflictivo es: INSERT INTO apex_objeto_eventos (proyecto,evento_id,objeto,identificador,etiqueta,maneja_datos,sobre_fila,imagen_recurso_orig$
                [F:2] Error de constraints en la tabla apex_objeto_cuadro.
 El error no fue reconocido por el importador.
Postgres dijo: ERROR:  duplicate key value violates unique constraint "apex_objeto_cuadro_pk"
DETAIL:  Key (objeto_cuadro, objeto_cuadro_proyecto)=(586000002, guarani) already exists..
 El sql conflictivo es: INSERT INTO apex_objeto_cuadro (objeto_cuadro_proyecto,objeto_cuadro,columnas_clave,clave_dbr,ancho,ordenar,paginar,tamano_pa$
                [F:2] Error de constraints en la tabla apex_objeto_ei_cuadro_columna.
 El error no fue reconocido por el importador.

Saludos!

Ricardo,

Después del “svn update” regeneraste la instancia? No te dio errores ese paso? No debiera haber nignún error irresoluble.

Saludos, Florencia.

Si, hice regenerar, en realidad hice ./guarani regenerar, debo hacer ./toba instancia regenerar -i desarrollo?

ahora dudo de todo, por eso…

Si, regenerá la instancia desarrollo y verificá por favor que no haya ningún error.

Me da este error:

administrador@guarani-dev:/opt/guarani$ bin/toba instancia regenerar -i desarrollo
 INSTANCIA: La instancia 'desarrollo' es invalida. (la carpeta '/opt/guarani/vendor/siu-toba/framework/instalacion/i__desarrollo' no existe)

no lo entiendo, i__desarrollo no debe estar en DIR_PROYECTO/instalacion?

Ricardo,

Probá así:

Dentro de la carpeta 'bin' (/bin) ejecutar: ./toba instancia regenerar -i desarrollo

Si vas a la carpeta ‘<path proyecto Guaraní>/instalacion/’ tenés la carpeta ‘i__desarrollo’?

Saludos, Florencia.

Solucione el error que daba, pero igualmente sigue dando 769 errores irresolubles.

No se que puede ser, pero me entrego a la gracias del señor! jejejeje

de última hago todo de nuevo… pero no se como lo haré si ya tengo las personalizaciones en el trunk…

Ricardo,

Algo mal tiene esa instalación. Yo me hice una instalación desde cero de la rama ‘https://colab.siu.edu.ar/svn/guarani3/nodos/unse/gestion/trunk/3.16.1’ y corro el comando ‘guarani esquema_pers conflictos’ y tengo sólo 7 errores solubles. Si hacés una instalación desde cero de esa rama?

Saludos, Florencia.

Para recapitular todo,

1- Elimino todo la carpeta del proyecto haciendo previamente un backup de la carpeta instalacion.
2- hago un checkout,
3- Pego la carpeta instalacion.
4- Hago un composer install.
5- Hago el toba insancia regenerar -i desarrollo.
6- Inicio las personalizaciones.
7- Chequeo conflictos.
8- Importo las personalizaciones.
9- Hago un commit para subir todo
10- Festejo que todo haya salido bien.
11- Genero una versión de 4 dígitos.
12- actualizo producción.

Si me das el ok, ya lo hago!

Saludos!

Si, probá con eso!