Restaurar base 3.17.0 en versión 3.18.0

Hola a todos!
Tenemos armado el ambiente de test con la nueva versión 3.18.0: servidor de BD, Gestion y G3w. Tenemos pensado hacer lo siguiente pàra pasar a producción:

  • hacer un backup de la BD de producción (3.17.0)
  • recuperar este backup en TEST (3.18.0)
  • hacer ./guarani migrar_base
  • hacer ./toba instancia regenerar -i desarrollo

como son máquinas virtuales, después simplemente es pisar test con producción.

Estos pasos serían correctos?

Gracias por su tiempo

Hola

El ambiente de test tiene, en los objetos que estan en el disco, todas las personalizaciones?
Manejan perfiles funcionales?

Esas son las dos cosas a probar con los pasos que mencionas.

Emilio

Emilio:
Puedo agregar la exportación de la instancia antes de restaurar el backup. Con eso me aseguro de tener los script de los metadatos.
Y si tenemos perfiles funcionales, pero la exportación de la instancia los agrega o no?

Hola Ana,

Por lo que veo en su nodo 3.18.0 de Colab, ya tienen migradas las personalizaciones. No es necesario hacer nada respecto a los metadatos.
Si hacen un backup de todos los esquemas de la BD de producción deberían:

  1. Restaurarlo en testing (teniendo en cuenta las configuraciones del archivo bases.ini).
  2. Migrar el negocio con el comando ‘./guarani migrar_base’.
  3. Exportar los metadatos locales (perfiles funcionales y de datos) con el comando ‘./guarani instancia_exp_local’.
  4. Regenerar la instancia con el comando ‘./toba instancia regenerar -i desarrollo’.

Saludos, Florencia.
2

Florencia:
Me dá error al exportar la instancia:
xxxxxxx:/usr/local/proyectos/guarani/bin# ./guarani instancia_exp_local
Ejecutado: 10/03/21 11:04:13


Exportaci�n local de la instancia ‘desarrollo’

Exportando datos globales…
ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42703
[MENSAJE]: ERROR: no existe la columna �requiere_segundo_factor�
LINE 1: …da, hora_salida, ip_permitida, forzar_cambio_pwd, requiere_s…
^
[SQL EJECUTADA]: SELECT usuario, clave, nombre, email, autentificacion, bloqueado, parametro_a, parametro_b, parametro_c, solicitud_registrar, solicitud_obs_tipo_proyecto, solicitud_obs_tipo, solicitud_observacion, usuario_tipodoc, pre, ciu, suf, telefono, vencimiento, dias, hora_entrada, hora_salida, ip_permitida, forzar_cambio_pwd, requiere_segundo_factor FROM apex_usuario ORDER BY usuario ;


TIEMPO: 1,102 segundos

 La migración de la base terminó sin errores.

en el paso 1, restauré la base completa con todos los esquemas

Hola Ana,

Se trata de una columna nueva en una tabla de la instancia Toba que se agregó para la versión 3.3. Probá de agregarla manualmente para poder exportar:

SET SEARCH_PATH = 'desarrollo';
ALTER TABLE apex_usuario ADD COLUMN requiere_segundo_factor SMALLINT NOT NULL DEFAULT 0;

Saludos, Florencia.

Florencia:
Agregué la columna y exporté la instancia sin problemas, pero ahora el error lo da el regenerar:
xxxxx:/usr/local/proyectos/guarani/bin# ./toba instancia regenerar -i desarrollo
Desea conservar datos locales como usuarios y logs? (Si o No)
Si responde NO, se utilizaran los exportados el Thu 11-Mar-21 a las 09:03
(s/n):n

±-----------+
| BASE |
±-----------+
| postgres7 |
| xxxxx |
|xxxx |
| xxxx |
| xxxx |
| xxx |
| xxx |
| xxxx |
±-----------+

Migrando instancia ‘desarrollo’

.OK

Migrando instancia ‘desarrollo’

ERROR ejecutando SQL:
[CODIGO]: 7
[SQLSTATE]: db_42701
[MENSAJE]: ERROR: ya existe la columna �requiere_segundo_factor� en la relaci�n �apex_usuario�
[SQL EJECUTADA]: ALTER TABLE apex_usuario ADD COLUMN requiere_segundo_factor SMALLINT NOT NULL DEFAULT 0;


TIEMPO: 11,008 segundos

Creo que debería haber exportado la instancia antes de restaurar la base, restaurar y regenerar la instancia, y no tendría este problema, o me equivoco?

Ana,

Es que si exportabas los datos locales antes de restaurar la base no ibas a tener los perfiles de producción.
Ahora que ya los exportaste borrá la columna que agregaste y probá de regenerar la instancia.

Saludos, Florencia.

Pero los perfiles de producción los tengo en la 3.18, no se exportan al exportar la instancia?

Los perfiles no son tratados como personalizaciones, se exportan cuando ejecutás el comando ‘’./guarani instancia_exp_local’. Los podrías haber exportado en producción y haber movido los archivos…

Perfecto. Esta máquina está clonada de producción y versionada a 3.18.0, por lo que si exporto antes de restaurar tengo los perfiles.

Ana,

Parece que el proceso se completa de todas maneras. Revisaron los perfiles?

Saludos, Florencia.
2

Florencia:
Rehice el proceso. Hay perfiles que falla por la carga de la siguiente de los siguientes items:
ATENCION! No fue posible cargar por completo el ‘perfil_posgrado_restingido’, posiblemente a causa de que al menos una operaci�n, restricci�n o derecho ha dejado de existir en ‘guarani’. 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)=(guarani, 32000023) 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 (‘guarani’, ‘posgrado_restingido’, NULL, ‘32000023’);

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)=(guarani, 32000024) 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 (‘guarani’, ‘posgrado_restingido’, NULL, ‘32000024’);

De todas formas se contin�a la carga, se recomienda revisar la definici�n de este perfil.


Veo en la versión 3.17.0 que es el item 32000024 es el ci_seleccion_alumnos_disponibles.php pero el 32000023 no lo encuentro.

Depués de esto, tira el warning:
…PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity “/usr/local/proyectos/guarani/instalacion/i__desarrollo/p__guarani/perfiles/membresias_perfiles.xml” in /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/toba_xml_tablas.php on line 65
PHP Warning: Invalid argument supplied for foreach() in /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/toba_xml_tablas.php on line 67

Los perfiles en Toba-Usuarios están correctos.

Hola Ana

El item 32000024 era de la operación “Disponibilidad de Aulas - Comisiones” que se eliminó en la versión 3.18, lo mismo pasa con el item 32000023 de la operación “Ocupación de Aulas - Mesas de Examen”. Seguramente ustedes lo tenían includido en el perfil funcional “perfil_posgrado_restingido”, por ese motivo el proceso tuvo problemas en la carga, pero hace la aclaración “De todas formas se continúa la carga, se recomienda revisar la definición de este perfil.”

Acá hay otro post similar.

Saludos