Herramientas de usuario

Herramientas del sitio


plugins:copiadechangelog

Diferencias

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

Enlace a la vista de comparación

Próxima revisión
Revisión previa
plugins:copiadechangelog [2013/03/14 20:26]
admin created
plugins:copiadechangelog [2021/04/30 19:19] (actual)
Línea 2: Línea 2:
  
 Es posible "clonar" el changelog de una base de datos origen a una destino durante el proceso de instalación de un componente, facilitando así el desarrollo distribuido.  Para ésto, se crea un componente temporal de desarrollo, el cual luego es instalado en la base de datos general, impactando no solo los cambios que dicho componente tenga registrado, sino también generando el changelog correspondiente en esta última.  El resultado final es una base de datos general cuyo contenido y changelog fue virtualmente creado directamente sobre ésta. Es posible "clonar" el changelog de una base de datos origen a una destino durante el proceso de instalación de un componente, facilitando así el desarrollo distribuido.  Para ésto, se crea un componente temporal de desarrollo, el cual luego es instalado en la base de datos general, impactando no solo los cambios que dicho componente tenga registrado, sino también generando el changelog correspondiente en esta última.  El resultado final es una base de datos general cuyo contenido y changelog fue virtualmente creado directamente sobre ésta.
 +
 +**IMPORTANTE**: El desarrollo del componente se debe realizar sobre un componente que no exista actualmente. Esto es, NO se debe desarrollar sobre una versión del componente Libertya CORE ya que el prefijo es el mismo que uno existente. Para evitar inconvenientes, se puede crear el componente con el nombre del desarrollador, en cualquier versión, por ejemplo Componente Matías Cap, prefijo MCAP, versión 1.0. Como estos componentes son temporales, los UID origen se van a reemplazar (esto se explica luego) y no van a incidir a futuro en ningún componente existente. En el ejemplo que se explica más abajo, se utiliza el componente FOO, el cual es temporal.
  
 **Alternativas de instalación**: La instalación de un componente ahora abarca tres posibilidades distintas: **Alternativas de instalación**: La instalación de un componente ahora abarca tres posibilidades distintas:
Línea 36: Línea 38:
  
 ==== Mapeo de UIDs ==== ==== Mapeo de UIDs ====
 +
 +^ MUY IMPORTANTE: A partir de la revisión r2819 (Soporte para microcomponents), la lógica de generación de los identificadores universales de registros (campo AD_ComponentObjectUID) se modificó a fin de garantizar un UID único e inequívoco. El nuevo formato universal es: PREFIJO-TableName-TimeStamp-Desambiguador, por ejemplo: CORE-AD_Column-20191219101230703-090793). Es por esto que al utilizar la funcionalidad de CopyToChangelog, no se requerirá mapeo de UIDs ante cualquier desarrollo llevado a cabo a partir de dicha revisión (tradicional o microcomponente). Por defecto el mapeo de UIDs queda desactivado, debiendo forzarlo mediante la propiedad MAPUIDS = Y en el manifest.properties del archivo .jar a instalar. Para más detalles ver [[plugins:microcomponents|Soporte para desarrollo de microcomponentes]] |
  
 Un aspecto de especial interés es el de los AD_ComponentObjectUIDs.  Dado que en este último caso estamos llevando a CORE un componente desarrollado en otra base de datos, el mapeo no se resuelve sencillamente cambiando FOO por CORE en el UID.  Es probable que dicho UID ya exista en la base destino.  Se detallan a continuación las acciones que realiza el mapeador durante la "instalación" del componente. Un aspecto de especial interés es el de los AD_ComponentObjectUIDs.  Dado que en este último caso estamos llevando a CORE un componente desarrollado en otra base de datos, el mapeo no se resuelve sencillamente cambiando FOO por CORE en el UID.  Es probable que dicho UID ya exista en la base destino.  Se detallan a continuación las acciones que realiza el mapeador durante la "instalación" del componente.
Línea 53: Línea 57:
 Hay que tener especial cuidado si se cuenta con un proceso post-install ad-hoc, el cual realiza modificaciones basadas en UIDs.  Se recomienda en estos casos utilizar otra clave de búsqueda (dado que los UIDs mapeados poseen el timestamp para desambiguación). Hay que tener especial cuidado si se cuenta con un proceso post-install ad-hoc, el cual realiza modificaciones basadas en UIDs.  Se recomienda en estos casos utilizar otra clave de búsqueda (dado que los UIDs mapeados poseen el timestamp para desambiguación).
  
-TODO?: Al instalar con mapeo el UID crece considerablemente.  Si en algún caso se vuelve a instalar con mapeo a partir de un export del instalado, el mismo generará un UID enorme y mal formado.  Para solucionar esto, habría que modificar la forma de manejar los UIDs, con los siguientes pasos:+ 
 +TODO INTERNO: Al instalar con mapeo el UID crece considerablemente.  Si en algún caso se vuelve a instalar con mapeo a partir de un export del instalado, el mismo generará un UID enorme y mal formado.  Para solucionar esto, habría que modificar la forma de manejar los UIDs, con los siguientes pasos:
  
   - Generar un UID temporal y ponerlo en la map al insertar   - Generar un UID temporal y ponerlo en la map al insertar
Línea 71: Línea 76:
 ==== Limitaciones en instalación con mapeo ==== ==== Limitaciones en instalación con mapeo ====
  
-Una vez que el componente temporal fue instalado, **el mismo no puede seguir siendo utilizado para desarrollo**.  De hacerlo, podrían generarse entradas de modificación a registros ya existentes, los cuales sus UIDs fueron mapeados en la base de datos destino, haciendo imposible su posterior recuperación al momento de realizar una segunda instalación complementaria.  +**MUY IMPORTANTE**: Una vez que el componente temporal fue instalado, **el mismo no puede seguir siendo utilizado para desarrollo**.  De hacerlo, podrían generarse entradas de modificación a registros ya existentes, los cuales sus UIDs fueron mapeados en la base de datos destino, haciendo imposible su posterior recuperación al momento de realizar una segunda instalación complementaria.  
  
 Ejemplo: Ejemplo:
plugins/copiadechangelog.1363292812.txt.gz · Última modificación: 2021/04/30 19:20 (editor externo)