Herramientas de usuario

Herramientas del sitio


plugins:validacionescomponente

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
plugins:validacionescomponente [2017/02/02 11:56]
fcristina
plugins:validacionescomponente [2021/04/30 19:19] (actual)
Línea 13: Línea 13:
 Los pasos para verificar el componente a nivel BBDD/Metadatos son los siguientes: Los pasos para verificar el componente a nivel BBDD/Metadatos son los siguientes:
  
-**PASO 1: Exportar el componente temporal.**+==== PASO 1: Exportar el componente temporal ====
  
-Esto simplemente implica realizar la exportación del componente utilizando la funcionalidad **Exportar Componente**.+ 
 +Esto simplemente implica realizar la exportación del componente utilizando la funcionalidad **Exportar Componente** desde el perfil **System Administrator**.
  
 Al exportar, es posible que sea necesario habilitar el check **Validar consistencia de la bitácora**. Este check verifica para cada entrada del changelog si efectivamente existe la entrada en la BBDD.  Por ejemplo, si el changelog indica la creación del campo **FOO-AD_Field-10189311**, se valida si efectivamente existe dicho registro en la tabla **AD_Field**. Al exportar, es posible que sea necesario habilitar el check **Validar consistencia de la bitácora**. Este check verifica para cada entrada del changelog si efectivamente existe la entrada en la BBDD.  Por ejemplo, si el changelog indica la creación del campo **FOO-AD_Field-10189311**, se valida si efectivamente existe dicho registro en la tabla **AD_Field**.
Línea 23: Línea 24:
 Estas situaciones pueden darse por ejemplo cuando se crea información en los metadatos y se registran automáticamente los cambios en la bitácora, pero luego se elimina dicha información. Si bien la eliminación queda registrada en la bitácora, es probable que registros relacionados son eliminados directamente en cascada (por constraints de Foreign Key) sin pasar por la bitácora, generándose un eventual desfazaje entre metadatos y base de datos.  Un ejemplo es la creación de un Field y sus traducciones.  La eliminación del Field implica la eliminación en cascada de las traducciones a nivel postgres, pero esto no queda registrado en la bitácora. Estas situaciones pueden darse por ejemplo cuando se crea información en los metadatos y se registran automáticamente los cambios en la bitácora, pero luego se elimina dicha información. Si bien la eliminación queda registrada en la bitácora, es probable que registros relacionados son eliminados directamente en cascada (por constraints de Foreign Key) sin pasar por la bitácora, generándose un eventual desfazaje entre metadatos y base de datos.  Un ejemplo es la creación de un Field y sus traducciones.  La eliminación del Field implica la eliminación en cascada de las traducciones a nivel postgres, pero esto no queda registrado en la bitácora.
  
-**NOTA:** Estas funcionalidades asiste en la búsqueda y detección de potenciales errores, y si bien en una primera iteración de la validación podría omitirse la utilización de estos checks, en caso de presentarse errores a lo largo de estos pasos probablemente en un a segunda iteración sea necesario tildarlos a fin de reducir el volumen de eventuales errores a presentarse.+**NOTA:** Estas funcionalidades fueron implementadas a partir de la revision r1670, y sólo asisten en la búsqueda y detección de potenciales errores.  Si bien en una primera iteración de la validación podría omitirse la utilización de estos checks, en caso de presentarse errores a lo largo de estos pasos probablemente en una segunda iteración sea necesario habilitarlos a fin de reducir el volumen de eventuales errores a presentarse. 
 + 
 + 
 +==== PASO 2: Instalar en una copia de la BBDD libertya standard, incorporando al changelog ==== 
 + 
 +Una vez exportado el componente **FOO** y armado el .jar de instalación, se procederá a instalarlo en una BBDD de libertya standard, indicando que se utilizará la funcionalidad de [[plugins:copiadechangelog#instalacion_con_copia_de_changelog_con_mapeo_a_componente_existente|copia de changelog con mapeo a componente existente]] hacia el componente **LY CORE 17.05** a fin de incorporar los cambios del componente **FOO** a la bitácora de cambios de la versión standard. 
 + 
 +De esta manera, el componente **LY CORE 17.05** de la versión standard contendrá todos los cambios de **FOO** como si hubieran sido desarrollados directamente sobre dicha BBDD. 
 + 
 +==== PASO 3: Exportar el changelog de LY CORE que ahora incluyen los cambios de FOO ==== 
 + 
 +La intención ahora es exportar **LY CORE 17.05** completo (incluyendo las modificaciones de **FOO** llevadas a CORE), a fin de verificar posteriormente que efectivamente no haya errores al realizar una actualización desde LY CORE 16.04. 
 + 
 +Se exporta el componente y se genera el jar de actualización correspondiente, siguiendo el ejemplo: **org.libertya.core.upgrade_16.04_17.05.jar**.  Lógicamente será necesario ampliar el **preinstall_from_16.04.sql** alojado en los fuentes de LY según sea necesario a partir de las modificaciones incorporadas en el componente **FOO**, a fin de generar el **preinstall.sql** definitivo que quedará almacenado en el .jar de instalación. 
 + 
 +Nuevamente, aquí se sugiere utilizar las funcionalidades **Validar consistencia de la bitácora** y **Deshabilitar entradas inexistentes** en caso de ser necesario. 
 + 
 +==== PASO 4: Prueba de instalación ==== 
 + 
 +Sobre una BBDD de **Libertya 16.04**, se prueba a realizar la actualización en cuestión, validando que no se presenten errores al momento de aplicar la misma. 
 + 
 +En caso de errores, será necesario depurar/adaptar la bitácora de cambios del componente temporal **FOO** según las necesidades del caso, para realizar nuevamente las validaciones pertinentes. 
  
 +===== En caso de error =====
  
-**PASO 2: Instalar en una copia de la BBDD libertya standardincorporando al changelog**+En caso de erroresse deberá determinar primeramente el origen del mismo.  Para esto será necesario revisar el log de instalación a fin de saber cuales son las entradas del changelog problemáticas.
  
-Una vez exportado el componente **FOO** y armado el .jar de instalación, se procederá instalarlo en una BBDD de libertya standardindicando que se utilizará la funcionalidad de copytochangelog hacia **LY CORE 17.05** a fin de incorporar los cambios del componente a la bitácora de cambios de la versión standard.+Una vez determinado ésto, se debe proceder realizar los ajustes necesarioscomo por ejemplo deshabilitar dichas entradas o realizar modificaciones sobre las mismas.
  
-De esta manera, la versión standard contendrá todos los cambios de **FOO** como si hubieran sido desarrollados directamente sobre dicha BBDD.+A partir de la revisión r1766 la instalación de un componente incluye el changelogGroupID asociado a cada actividad de la bitácora, haciendo más sencilla la determinación del origen del error.
  
-**PASO 3Exportar el changelog de LY CORE que ahora incluyen los cambios de FOO**+Por ejemplo:
  
-La intención ahora es exportar LY CORE+  WARNING: - Imposible eliminar - referencia inexistente en tabla.  
 +  Referencia: (FOO2CORE-C_RetencionSchema-1010123) . 
 +  Tabla: C_RetencionSchema - changelogGroupID:1178479
  
-    Exportan su componente temporal +Con esto sabemos que el changelogGroupID es el 1178479, el cual podemos observar en el **postinstall.xml**:
-    Lo instalan en una BBDD de libertya actual con copyToChangelog,etc.. +
-    Exportan desde esa BBDD de libertya el changelog, con validación de consistencias. +
-    Intentan instalar sobre otra BBDD que le falta esa parte del changelog.+
  
 +  <changegroup changelogGroupID="1178479" 
 +  operation="D" 
 +  tableName="C_RetencionSchema" 
 +  uid="FOO2CORE-C_RetencionSchema-1010123"/>
 +  
 +Esto permite realizar las modificaciones pertinentes sobre la tabla AD_Changelog del componente de desarrollo FOO, por ejemplo:
  
 +  UPDATE AD_Changelog SET isactive = 'N' WHERE changelogGroup_ID = 1178479
plugins/validacionescomponente.1486036597.txt.gz · Última modificación: 2021/04/30 19:21 (editor externo)