Cambio de versión de GeneXus - Paso 3 : Build exitoso de la KB en la nueva versión

Paso 3 del ciclo Metodología para el cambio de versión de GeneXus 



Ya tenemos una nueva instalación de GeneXus completa y operativa y una lista primaria de las cosas que vamos a tener que testear. 

Ahora llega un paso que puede ser sencillo, que es el de lograr un BUILD ALL exitoso en la nueva versión.  Dependiendo de cuan grande sea el salto entre versiones de GeneXus, puede ser desde muy difícil a trivial. 

La idea aca es trabajar en una COPIA de la KB original. La forma de lograr esta copia puede ser CLONANDO la KB original o volviendo a bajar la KB en caso que se utilizando GXServer. 

Habitualmente lo que hago en esta etapa es: 

  • Si uso GXServer  -->     Create KB From Server
  • si no                     --->    Clonar la KB original usando KBClone 
  • Export de todos los objetos y la KB (para recurrir en caso que algo salga mal). 
  • Abrir la KB con la nueva versión de GX 
  • Crear una versión congelada en la nueva KB (para volver en caso de meter la pata y tener una forma de saber que objetos cambie)
  • (Paso opcional) Importar todos los objetos sobre si mismo. Esto obliga a salvar y volver a validar todos los objetos. 
  • Cambiar la propiedad de Reorganize Server Tables en NO (para no hacer reorganizaciones sin querer, por ahora la base de datos, se sigue reorganizando desde la KB vieja). 
  • Create Database Tables (para asegurarse que no hay inconsistencias en la base de datos).
  • Build All 
  • Corregir todos los errores y nuevos warnings del Create Database y Build All (de ser posible en la KB Original, sino en la KB Nueva). 
Repetir todas los pasos necesarios hasta tener un build all exitoso

Una vez logrado un build sin errores, es conveniente ejecutar un KBCompress que comprime la KB, defragmenta los indices en la base de datos SQL Server de la KB y ademas hace algunos chequeos de integridad de la KB. 

Limpieza (opcional) 

Algo que aparece mucho en esta etapa, es que hay en la KB algunos objetos que no son necesarios y que podrían borrarse. Hay que evaluar si es un buen momento para hacer limpieza.  Por un lado evita corregir cosas que no se usan, pero por otro lado aumenta el riesgo del cambio de versión, pues podemos borrar cosas que se necesitan. 

Cosas que pueden borrarse sin mucho riesgo: 
  • Atributos que no están en ninguna tabla
  • Variables definidas y no usadas en los objetos
  • Objetos no alcanzables

Conclusiones - Paso 3 - Build exitoso

La salida esperada de esta etapa es una KB en la nueva versión, sin errores y optimizada como para poder empezar a hacer las comparaciones entre la aplicación vieja y la nueva. 

Es una etapa que puede automatizarse muchísimo, pues con poco esfuerzo, se puede crear un script que haga todos los pasos (menos el de corregir los errores)

Herramientas que se pueden utilizar en esta etapa. 





 

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.