NotasTecnicas/ActualizarA37Pers

<< volver

Actualización de Guarani3 a la versión 3.7 con Personalizaciones

Este esquema es válido si cuentan con una rama en el SVN para personalizaciones propias.


Descripción de los pasos:



Etapa 1. Actualización del Entorno de Desarrollo a la versión 3.7 del sistema

A partir de la version 3.5 del sistema, la instalación de desarrollo y producción varía ya que en desarrollo se utiliza el esquema de personalizaciones de Guaraní, mientras que en producción este modelo es transparente. Los pasos que se detallan aquí son para actualizar los entornos de desarrollo.

1. Actualización versión estándar de Guaraní 3

1.1. Actualizar la copia local de SIU-Toba

Usando la línea de comando, posicionados en la carpeta de la instalación Toba (por defecto C:\Toba):

    svn update 

1.2. Exportar la información local de la instancia

A continuacion, se debe utilizar el comando 'guarani' ubicado dentro de la carpeta 'bin' del proyecto, en la instalación Toba (por defecto C:\Toba\proyectos\guarani\bin). Se recomienda incluir esta ruta en el PATH del sistema así se permite la ejecución de este comando fuera del directorio especificado. Básicamente, el comando es un atajo para el comando “toba proyecto -p guarani -i desarrollo” de versiones anteriores. El comando asume que el identificador de la instancia (<id_instancia>) es "desarrollo", el mismo nombre que el que se da por defecto en la instalación del sistema. Si por alguna razón la instancia tiene otro nombre, editar el archivo del comando “guarani” citado, y en la línea 3 del mismo remplazar la variable “toba_instancia=desarrollo” por el nombre correspondiente. En Linux, recordar aplicarle los permisos adecuados al archivo para poder ejecutarlo. Una vez realizado esto, ubicarse en el directorio citado y ejecutar:

    guarani instancia_exp_local

1.3. Resguardo de la BD de negocios y código

Antes de comenzar se debe resguardar la BD de negocios para restaurarla ante cualquier error que surja en el procedimiento de actualización de la versión. Ejecutar:

    guarani resguardar_base

1.4. Actualizar el código del sistema

El resguardo de código es necesario en caso de tener archivos modificados o personalizaciones desarrolladas; si se cuenta con archivos que difieren de los que se encuentran en el svn. La idea es que no tengan archivos modificados aunque, dado que es una instalación de desarrollo, puede pasar. Hay que tener en cuenta que al realizar el paso siguiente (svn switch) los archivos modificados no se reemplazarán, por lo que es recomendable resguardarlos y no tener archivos modificados al realizar el switch y luego ver como mergearlos con los de la nueva versión.

Hacer un SVN SWITCH sobre el proyecto SIU-Guaraní a la nueva versión del sistema.

Usando la línea de comando, posicionados en la carpeta del proyecto Guaraní (por defecto C:\Toba\proyectos\guarani):

    svn sw http://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/trunk/3.7.0 

Cuando indicamos <Branch uunn> referimos al branch de cada institución, reemplazar uunn por el nombre de la Institución correspondiente.

1.4.1. Mergear la carpeta personalizaciones a la nueva versión del sistema

Una vez obtenido el código de la nueva versión, la carpeta personalizaciones tendrá los archivos estándar. Hay que traer entonces todas las personalizaciones realizadas en la versión anterior (si es que existieran). Para esto, se debe hacer un SVN MERGE sobre la carpeta 'personalizaciones'.

Usando la línea de comando, posicionados en la carpeta del proyecto Guaraní (por defecto C:\Toba\proyectos\guarani) y ejecutar lo siguiente:

    svn merge https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/trunk/3.6.0/personalizacion ./personalizacion

1.5. Desactivar el esquema de personalizaciones

Ejecutar:

    guarani esquema_pers desactivar

Ejecutar sin importar si está activado el esquema o no.

1.6. Regenerar el proyecto SIU-Guaraní 3

Regenerar el proyecto. Para esto ejecutar (si no se incluyó la ruta en el PATH del sistema, desde la carpeta 'bin' del proyecto en la instalación Toba, por defecto: 'C:\Toba\proyectos\guarani\bin'):

    guarani regenerar 

1.7. Actualizar la base de datos de negocio a la nueva versión

Actualizar la base de negocio con los cambios introducidos entre versiones. Ejecutar:

    guarani migrar_base 

Nota: si al ejecutar el comando de actualización se muestra el mensaje No pudo resguardarse la base actual. Desea continuar? (Si o No), probablemente no se encuentre el directorio ‘bin’ de PostgreSQL en el path del sistema operativo. Responda "No", agregue la carpeta al path y vuelva a intentarlo.

Etapa 2. Migración de personalizaciones

Luego de ejecutar todos los comandos previamente mencionados se acaba de realizar la correcta instalación de la versión 3.7.0 base del sistema. Es decir, el sistema deberia estar corriendo en la nueva versión con las operaciones estándares enviadas por el SIU. Sin embargo, si en la versión anterior se había activado el esquema de personalizaciones y se había realizado alguna, es necesario incorporarla/s a la nueva versión.

En el paso 1.4.1 se realizó el MERGE de la carpeta de personalizaciones de la versión anterior a ésta. Para la migración del esquema de personalizaciones realizar los pasos detallados.

2.1. Activar el esquema de personalizaciones

Este paso es fundamental y usualmente demora varios minutos. Genera un nuevo esquema en la BD para incorporar los metadatos que se personalizaran en el proyecto. Ejecutar el comando:

    guarani esquema_pers iniciar 

2.2 Chequear conflictos de las personalizaciones con la nueva versión

Dado que el sistema Guarani funciona sobre el framework Toba, utilizando su esquema de metadatos, es necesario chequear si existe algún conflicto entre las personalizaciones realizadas y la nueva versión. Para ello ejecutar el siguiente comando:

    guarani esquema_pers conflictos

Nota: si al ejecutar el comando de chequeo de conflictos, llegaran a reportarse conflictos, consultar con el SIU a través del foro para ser guiados en el tratamiento de los mismos.

2.3. Importar las personalizaciones

Incorpora las personalizaciones desarrolladas en la versión anterior a la actual. Ejecutar el comando:

    guarani esquema_pers importar

Para interiorizarse en el trabajo diario del desarrollo de personalizaciones del sistema en un grupo de desarrolladores, consultar Trabajo Diario con Personalizaciones

Etapa 3. Creación de una nueva versión propia del sistema

Se recomienda sacar una versión propia del sistema, a partir de la nueva versión proporcionada por el SIU sumando las personalizaciones migradas. La idea es que a medida que se van desarrollando y testeando personalizaciones, se proceda con la creación de una nueva versión propia incluyendo un cuarto dígito para pasar estos cambios a producción (Ej.: 3.7.0.1, 3.7.0.2, etc.). La idea es que el servidor de producción, a diferencia del de desarrollo, apunte siempre a versiones propias (de 4 digitos) incluidas en la carpeta  https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/versiones/3.7.0.X (Donde la X representa el nro. de la versión creada). Esto es una buena práctica ya que evita errores y se tiene un mejor control acerca de los cambios y personalizaciones aplicadas.

3.1 Verificar personalizaciones

Es necesario verificar en el ambiente de desarrollo que las personalizaciones funcionen correctamente y corregirlas si es necesario. A medida que se van corrigiendo se van subiendo al svn, haciendo un update si es que hay más desarrolladores trabajando y verificando su correcto funcionamiento.

   guarani esquema_pers exportar

   svn update (de la carpeta guarani)

   svn commit -m "Personalizaciones <Branch uunn> 3.7.0: Personalización XXXXX"

3.2 Generar versión propia de 4 dígitos

Una vez que se definieron todas las personalizaciones que van a formar parte de la versión, se debe proceder con la creación de la rama de SVN propia que contendrá los archivos que componen la misma Crear la nueva versión 3.7.0.X

    svn cp https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/trunk/3.7.0 https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/versiones/3.7.0.X -m "Creación de la version 3.7.0.X"

3.3 SWITCH a la rama de la nueva versión para ultimar detalles

Una vez que se crea la rama de la nueva versión, hay que realizar un SVN SWITCH del código a la nueva rama creada (carpeta 'guarani') para realizar los commits finales previos a la actualización del servidor de producción. Para esto ejecutar ubicados en la carpeta 'guarani':

    svn sw https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/versiones/3.7.0.X (Donde X corresponde a la versión recién creada)

3.4 Modificaciones finales a la versión Propia

Una vez realizado el paso anterior y ya apuntando a la rama mencionada (se puede ejecutar el comando 'svn info' para verificar a que repositorio apunta la carpeta 'guarani'), restaría exportar los metadatos personalizados sobrescribiendo los metadatos originales con los mismos, para sacar la nueva versión y luego poder actualizar el servidor de producción. IMPORTANTE: Realizar estos pasos solo para la creación de la versión en la rama de la misma y nunca como forma de trabajo habitual. La idea es que en el trunk siempre se conserven los metadatos originales enviados por el SIU y todas las personalziaciones se incluyan solamente en la carpeta personalizaciones. Sin embargo, como indicamos los mismos se sobrescriben y comitean en la rama propia para actualizar el servidor de producción. Para esto:

a) Desactivar el chequeo de SVN para exportaciones accidentales de metadatos. Para esto, editar el archivo: instalacion.ini ubicado en $toba_dir/instalacion/instalacion.ini y setear:

   chequea_sincro_svn=0

b) Ejecutar:

    guarani exportar

    svn commit -m "Personalizaciones <Branch uunn>/versiones/3.7.0.X: Se comitean las personalizaciones como metadatos originales del proyecto" (Si hay cambios para commitear)

c) Volver a activar el chequeo de sincronizacion SVN para evitar errores accidentales. Editar nuevamente instalacion.ini:

   chequea_sincro_svn=1

Una vez realizados todos estos pasos, se está en condiciones de actualizar el servidor de producción. Realizar esta etapa, los 4 pasos mencionados, cada vez que se desee sacar una nueva versión propia del sistema.

IMPORTANTE: PARA CONTINUAR DESARROLLANDO PERSONALIZACIONES EN LA VERSION ORIGINAL Y LUEGO SACAR UNA NUEVA VERSION DEL SISTEMA SE DEBE VOLVER A REALIZAR UN 'SVN SW' DE LA MISMA FORMA YA EXPLICADA PERO APUNTANDO A  https://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<Branch uunn>/trunk/3.6.0

Etapa 4. Actualización del Entorno de Producción

Los pasos de aquí en adelante se realizan sobre el ambiente de Producción


Configuraciones del servidor de producción:

Indicar lo siguiente para manejar los usuarios y perfiles del sistema de forma local facilitando la actualización de versiones en el servidor y evitando cometer errores en el pasaje desde desarrollo. En el archivo instalacion.ini ubicado en $toba_dir/instalacion/instalacion.ini

es_produccion = 1

En el archivo instancia.ini ubicado en $toba_dir/instalacion/i__desarrollo/instancia.ini, dentro de la sección destinada para configuraciones del proyecto guarani indicada por [guarani] incluir la directiva "usar_perfiles_propios". La combinación de estos dos flags permite que la exportación de perfiles se haga en la carpeta $toba_dir/instalacion/i__desarrollo/p__guarani/perfiles en lugar de la carpeta usual guarani/metadatos/permisos. Cuando se actualiza el sistema se toma este nuevo lugar para intentar insertar los perfiles definidos localmente.
Se recomienda también incluir en este archivo la directiva "metadatos_compilados" y proceder con el punto 4.5 que genera los metadatos en el sistema de archivos para que el sistema funcione de manera mas eficientemente en producción, sin tener que consultar a la BD para la creación y navegación de operaciones del sistema. Incluir entonces lo siguiente:

[guarani]
usar_perfiles_propios = 1
metadatos_compilados = 1

Ya creada la nueva versión hay que proceder a actualizar producción. Realizar todos estos pasos cada vez que se genera una nueva versión propia del sistema para la actualización del servidor de producción.

4.1 Exportar datos locales

Como primera medida se exportan los datos locales para preservarlos

      toba instancia exportar_local -i desarrollo

4.2 Apuntar el servidor de producción a la nueva versión

Realizar un switch a la version 3.7.0.X: en la carpeta guaraní:

     svn switch http://repositorio.siu.edu.ar/svn/guarani/personalizaciones/<branch uunn>/versiones/3.7.0.X 

4.3 Regenerar el proyecto guaraní

Este paso es necesario para impactar los metadatos en la base de producción.

     guarani regenerar (si llegara a dar warning por algún perfil funcional, revisar el mismo)

4.4 Migrar la base de negocio

Migrar la base de negocio de producción a la nueva versión. Normalmente este paso se deberá ejecutar la primera vez que se migra a una nueva versión del sistema (de la v3.6.0.X a la 3.7.0.1 por ejemplo) y no en las versiones propias subsiguientes de la misma versión de Guaraní enviada por el SIU. Sin embargo, la ejecución de este comando no produce cambios si ya fue ejecutado, por lo que ante la duda, ejecutarlo de todas formas.

     guarani migrar_base

4.5 Compilar metadatos

Finalmente, y para optimizar el sistema en producción se recomienda ejecutar el siguiente comando para compilar los metadatos en el sistema de archivos, optimizar la navegación y ejecución de operaciones. Este comando generará la carpeta 'guarani/metadatos_compilados' que no debe versionarse (svn commit) ya que se regenerará cada vez que se actualice el servidor.

     guarani compilar

<< volver