NotasTecnicas/ActualizarA38Pers

<< volver


  • EN DESARROLLO!
  • Actualización de Guarani3 a la versión 3.8 con Personalizaciones

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



    Etapa 1. Actualización del Entorno de Desarrollo a la versión 3.8 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.

    Dado que la actualización a la versión 3.8 del sistema involucra cambios verdaderamente significativos del mismo, a saber:

    • Se utiliza la nueva versión del framework SIU-Toba 2.4 (las versiones anteriores funcionaban con SIU-Toba 2.3)
    • Se cambia la estructura de directorios del sistema significativamente, incluyendo Toba dentro de Guarani y no al revés como en la versiona anterior
    • Se produce el cambio del servidor de SVN utilizando a partir de aqui el servidor 'colab.siu.edu.ar'

    Los primeros pasos entonces, consisten en realizar un backup de la versión actual tanto en desarrollo como en producción, para contar con los datos de la antigua versión de forma tal de poder restaurarla ante cualquier eventualidad que pueda surgir en el proceso de migración del sistema y además contar con las configuraciones previas para chequear para la puesta en funcionamiento de la nueva versión.

    1. Resguardo de la versión y datos actuales de Guaraní 3

    1.1. Exportar la información local de la instancia

        guarani instancia_exp_local
    

    1.2. Resguardo de la BD de negocios

    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.3. Exportar las personalizaciones (OPCIONAL: SOLO si se tiene activado el esquema de personalzaciones)

    Se descargan los cambios realizados sobre personalizaciones al sistema de archivos para no perderlos, aunque para activarlos posteriormente deben estar subidos al repositorio. Ejecutar:

        guarani esquema_pers exportar
    

    1.4. Backup del código actual del sistema

    Para realizar el resguardo del código y configuraciones existentes del sistema actual, se renombrará el directorio existente y luego se procederá a descargarse la nueva versión del sistema directamente. Entonces, para proceder con el resguardo, renombrar la carpeta de la instalación Toba (por defecto C:\Toba) por 'Toba.backup'

    Una vez que se realizan estos 3 pasos, ya tenemos a salvo la version y configuraciones actuales. Se procede entonces con la migración propiamente dicha de la nueva versión del sistema.

    2. Actualización del Entorno de Desarrollo a la nueva versión

    Como explicamos antes, dado que en esta versión del sistema se realizan cambios sustanciales del mismo se procederá a realizar una nueva instalación en lugar de actualizar la versión existente. La idea es realizar una instalación limpia del sistema y luego modificar la misma para que utilice las configuraciones y datos de la versión anterior del sistema previamente instalada.

    2.1. Descargar el código del sistema

    Hacer un SVN CHECKOUT del proyecto SIU-Guaraní. Como se mencionó anteriormente, a partir de esta versión el sistema incluye al framework dentro de su estructura interna de directorios por lo que al descargar el sistema, se estará descargando automáticamente también el código de SIU-Toba necesario para ejecutar el sistema. Básicamente, ahora se debe solamente actualizar/descargar el directorio 'guarani' en lugar de descargar ambos directorios individualmente como se realizaba antes.

    Usando la línea de comando, crear la carpeta del proyecto Guaraní (por defecto C:\guarani) y luego ejecutar:

        cd guarani
        svn co http://colab.siu.edu.ar/svn/guarani3/nodos/<Branch uunn>/gestion/trunk/3.8.0/
    

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

    2.2. Instalar la nueva versión

    Ubicados en la carpeta 'bin' de Toba '<path proyecto Guaraní>/lib/toba/bin' (Por defecto: C:\guarani\lib\toba\bin) ejecutar el comando 'instalar'. Cuando se solicite el nombre de la base de datos se debe ingresar uno diferente al que tienen en uso para la instalación actual (si hoy usan 'guarani_3' como se sugiere por defecto, pueden seleccionar 'toba_2_4').

    2.3. Modificar configuraciones del sistema

    Agregar los parámetros en el archivo de inicialización de la instalación Toba (<path proyecto Guaraní>/lib/toba/instalacion/instalacion.ini):

    chequea_sincro_svn = 1
    [xslfo] 
    fop=<path proyecto Guaraní>/php/3ros/fop/fop.bat
    

    2.4. Cargar el proyecto

    Dentro de la carpeta 'bin' del proyecto Guaraní (<path proyecto Guaraní>/bin) ejecutar:

    guarani cargar -d <path proyecto Guaraní>
    

    Nota: ante la pregunta "¿Desea agregar el alias de apache al archivo toba.conf? (Si o No)" responder "Si".

    2.5. Crear / Instalar la BD de negocios y sus configuraciones

    Si bien posteriormente se va a utilizar la BD de negocios pre-existente, es necesario ejecutar este comando para que también se realicen Dentro de la carpeta 'bin' del proyecto Guaraní (<path proyecto Guaraní>/bin) ejecutar:

    guarani instalar
    

    2.6. Actualizar accesos Web

    Hasta aquí, se cuenta con una instalacion nueva, limpia, del sistema. Es necesario entonces cambiar los links de acceso del sistema (ya que cambia la estructura de directorios) del Servidor Web. Para esto, hay que editar el archivo de configuración de Apache 'httpd.conf'. Reemplazar el include del archivo 'toba.conf' correspondiente a la instalación anterior por el nuevo (<path proyecto Guaraní>/lib/toba/instalacion/toba.conf). Reiniciar el servicio. Revisar las nuevas URLs de acceso porque probablemente difieran de las que se venían usando hasta ahora.

    2.7. Cambiar configuración de la BD del sistema

    Una vez instalado y configurado el sistema, debemos configurarlo para utilizar nuestra BD de negocios antigua y luego migrarla. Editar el archivo de configuración 'bases.ini' (<path proyecto Guaraní>/lib/toba/instalacion/bases.ini) y modificar en todas las secciones el nombre de la base de datos: "toba_2_4" por "guarani_3" si usaron los nombres sugeridos, sino, reemplazar por el anterior utilizado en la antigua versión. Revisar que el nombre de los esquemas sea el correcto. Se puede chequear el archivo 'bases.ini' (ubicado en 'Toba.backup/instalacion/bases.ini') de la versión anterior para verificar que las modificaciones que se realizan sean las adecuadas.

    2.8. Exportar los datos de la instancia

    Dentro de la carpeta 'bin' del proyecto Guaraní (<path proyecto Guaraní>/bin) ejecutar:

    guarani instancia_exp_local
    

    2.9. Regenerar la instancia

    Dentro de la carpeta 'bin' de Toba (<path proyecto Guaraní>/lib/toba/bin) ejecutar:

    toba instancia regenerar -i desarrollo
    

    Nota: ante la pregunta "Desea conservar datos locales como usuarios y logs? (Si o No)" responder "No".

    2.10. Migrar BD negocios

    Si se tiene habilitado el esquema de auditoría, dentro de la carpeta 'bin' del proyecto Guaraní (<path proyecto Guaraní>/bin) ejecutar:

    guarani migrar_base
    

    2.11. Migrar auditoría

    Si se tiene habilitado el esquema de auditoría, dentro de la carpeta 'bin' del proyecto Guaraní (<path proyecto Guaraní>/bin) ejecutar:

    guarani migrar_auditoria_2_4
    

    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
    

    Etapa 2. Migración de personalizaciones

    VER COMO DOCUMENTAR!

    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