KBDoctor : Script para copiar datos entre bases de datos

Me ha pasado muchas veces en diferentes proyectos, que necesito copiar datos entre bases de datos que tienen estructura de tablas parecidas.

Por ejemplo, hago varias reorganizaciones en mi modelo de datos y quiero tener datos de producción para hacer pruebas, no es trivial hacerlo si se tienen diferentes estructuras.

Le agregué una opción al generador de scripts en el KBDoctor, para que genere un script que tiene sentencias de la forma


insert into <SourceDB>.<TargetSchema>.HrsCab (HrsFch,RspId,SeLiquida,CabezalPryId,EnExterior ) 
    select HrsFch,RspId,SeLiquida,CabezalPryId,EnExterior from  <TargetDB>.<TargetSchema>.HrsCab;



para todas las tablas del sistema.

Para que quede un script operativo, hay que sustituir <SourceDB> por la base de datos origen,  <SourceSchema> por el Schema origen y lo mismo pora <TargetDB> y <TargetSchema>

Entonces, para generarme una base de datos con los datos de producción, con la estructura nueva, lo que hago es hacer un "Create Database Tables" en GeneXus. Luego genero el script y copio desde la base de producción a la de desarrollo.

El script arma la lista de atributos teniendo en cuenta los atributos autonumber que esten en claves primarias, formulas redundantes, atributos inferidos, etc, de tal forma de copiar todo lo que necesita realmente.

Va a quedar disponible en la próxima versión disponible de KBDoctor para GX15.

La version actual, esta para SQL Server. Voy a hacer una version para Oracle apenas aprenda a copiar datos entre tablas cuando tienen claves autonumber.  Hay que deshabilitar triggers y copiar secuencias, y ya no es tan trivial.


Comentarios

  1. Enrique, perdón por el delay desde tu post... Creo que el tema de armar sets de datos para pruebas es todo un tema en si. Existen desde cuestiones de privacidad y regulaciones que afectan a las software factories, hasta temas de costo del disco cuando nuestra base de datos mide TB en lugar de GB y necesitamos una copia por programador.
    Has probado usando productos de TDM o de datos sintéticos? En caso que no lo hayas hecho te recomiendo CA TDM . En este momento estamos evaluando un producto holandés llamado DatProf que parece funcionar muy bien...
    Un abrazo

    ResponderBorrar
    Respuestas
    1. Diego:
      La generacion de datos para pruebas es un tema complejo. Probe las herramienta de RedGate, pero no conozco las que vos recomendas.
      Voy a evaluarlas.

      Enrique

      Borrar

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.