Haciendo limpieza en la KB.

A medida que pasa el tiempo, sobre todo si varias personas desarrollan con GeneXus sobre una misma base de conocimiento (KB), se generan algunos objetos que se dejan de usar.

Para esto, es bueno tener pronto una metodología de limpieza de la KB y hacerlo en forma periódica.






Los pasos que yo realizo para hacer una limpieza rápida.

1) Hacer un buen backup de la KB y tambien un Export de todos los objetos de la KB, para tener a mano, en caso que se nos vaya la mano en el borrado.

2) Correr el VariablesCleaner de Dvelop. Esto borra todas las variables no usadas en los objetos.

3) En la ventana View / Work With Attributes, elegirlos todos y intentar borrarlos. Solo va a borrar los no referenciados.

4) En la ventana Work With Objects, elegir todos los Dominios e intentar borrarlos todos.

5) Luego se puede ir a View / Knowledge Base Information / Not Referenced Objects y borrar los objetos que sobran. A las transacciones, no se las puede borrar tan facilmente, aunque no esten referenciadas, porque la tabla que genera puede ser referenciada. Si se puede cambiar la propiedad GenerateObject en *NO para que no se genere dicho objetos.

Con estos pasos, nos quedamos únicamente con los objetos útiles de la KB, lo cual ayuda al mantenimiento de los sistemas.


Comentarios

  1. te voy a robar algunas ideas para agregar a una extension :)

    ResponderBorrar
  2. Sebastian:
    Me parece fantastico!. Todas estas tareas son bastante automatizables, y esta bueno tener una extension para hacerlo.

    ResponderBorrar
  3. A mi me quedan 2 temas pendientes:

    a) Buscar alguna solución para depurar el histórico de SQL

    b) Eliminar el código generado que ya no se usa

    Abrazos
    Ricardo Coulthurst

    ResponderBorrar
  4. Ricardo:

    En el punto a) no se si te entiendo bien.
    Lo que estas queriendo es eliminar las revisiones viejas de los objetos, dentro de la KB?

    Es una funcionalidad que falta, pero te podes quedar unicamente con la ultima version, si exportas todo e importas en una KB vacia. No es lo optimo y demora mucho, pero funciona bastante bien, aunque algunas veces la base de datos que genera no es exactamente igual a la original (puede tener nombres de tablas diferentes).

    Con respecto al punto b).
    Los objetos no usados, se pueden borrar con la metodologia de arriba. Puede llevar unas cuantas pasadas pero se logra.
    Si lo que te referis es a borrar codigo que no se usa, que esta dentro de un objeto que si es usado, es algo un poco mas complicado.

    Subrutinas y eventos no usados deberian poder ser borrados teniendo un buen parser del codigo, pero no es demasiado facil de hacer, si no se tiene la gramatica formalmente definida.

    Me encantaria poder tener una herramienta que en un solo paso, limpiara todo lo no usado o no alcanzable de la KB para quedarme unicamente con lo que hay que mantener realmente.

    Hay que seguir trabajando en el tema, hasta lograrlo.

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

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.