DDlUtils

DDlUtils

From XendraWiki

Jump to: navigation, search

--Pasar Base de Datos Postgresql a Oracle, utilizando DDlUtils. y en entorno Windows

Requisitos

- Instalar Apache Ant version 1.6. Asignarle a la variable ANT_HOME y el Ant bin en el PATH.

set ANT_HOME=c:\ant set JAVA_HOME=c:\jdk-1.5.0.05 // O la version que se tenga set PATH=%PATH%;%ANT_HOME%\bin

- Instalar Subversion y asignar el directorio en la variable PATH.

- Verificar que el sqlj, este instalado en el postgresql, de no ser asi instalarlo y colocar el jvm.dll en la variable PATH, que se encuentra en la carpeta client del jdk.

Proceso de Conversion

Para realizar la conversion, utilizaremos el paquete DDlUtils que viene con el paquete xendra. Su ubicacion es c:/proyectos/xendra/erp/db/ddlutils/

Ahi observamos los paquetes Oracle y Postgresql que son los que se van a utilizar.

1er Paso: Exportamos la BD de Postgresql a Xml, el cual servira para importarlo a Oracle. Para ello entramos a la Carpeta Postgresql y editamos los archivos jdbc.properties y build.properties. Donde Indicamos el servidor postgresql de donde exportaremos la BD con su respectivo usuario y contraseƱa.

Una vez tengamos editado esto, procedemos a exportar para ello ejecutamos el CMD.

Aqui nos ubicamos en la carpeta postgresql C:\proyectos/xendra/erp/db/ddlutils/postgresql>

Luego escribir los siguientes comandos:

ant -f build-ddl.xml writeSchemaToFile --> El cual genera un archivo xml llamado adempiere-model, dentro de la carpeta ddlutils, que contiene la estructura de la BD.

ant -f build-ddl.xml writeDataToFile --> El cual genera un archivo xml llamado adempiere-data, dentro de la carpeta ddlutils, que contiene la Data de la BD.


Luego de realizar esto, editar el archivo adempiere-model.xml, ya que algunas definiciones no son reconocidas en Oracle y se tienen que editar manualmente, por ejemplo: Cuando en postgresql se define una columna de tipo Numeric, y no se le pone parametros, al convertirlo a xml, te pone valores por default muy encima de lo permitido en el parametro Size, el cual cobrebase el 1000, que es lo maximo permitido y esto hay que cambiarlo. Tambien en oracle cuando defines una variable de tipo TIMESTAMP, y como default="now()" , este valor no es reconocido y se tiene que cambiar a default="CURRENT_TIMESTAMP" , o cambiar la varible de tipo TIMESTAMP a DATE.


Despues de revisar y modificar los cambios para que sea compatible con Oracle, se ejecuta los siguientes comandos.

ant -f build-ddl.xml splitSchemaFileByTable --> El cual genera "n" archivos xml, dentro de la carpeta C:\proyectos\xendra\erp\db\ddlutils\model , qu contiene la estructura individual de cada tabla.


ant -f build-ddl.xml splitSchemaFileByTable --> El cual genera "n" archivos xml, dentro de la carpeta C:\proyectos\xendra\erp\db\ddlutils\model , qu contiene la estructura individual de cada tabla.


Una vez realizado esto ya tenemos todo listo para pasar nuestra BD a Oracle.

2do Paso: Importamos nuestra BD a Oracle, para ello el proceso inicial es el mismo , primero editamos los archivos jdbc.properties.oracle10 y build.properties, los cuales se encuentra en la carpetas Oracle dentro de DDlUtils, cuya configuracion contendra los datos de nuestra coneccion Oracle y el nombre de la BD que queremos crear.

Procedemos de la misma forma que en el paso anterior, ejecutamos el CMD y nos ubicamos en la carpeta Oracle

C:\proyectos/xendra/erp/db/ddlutils/oracle>

Y ejecutamos el siguiente comando

ant -f build.xml create --> Esto permite crear la BD, con la data antes exportada.


Esos serian todos los pasos a seguir.

Si se quiere exportar a otra BD, los pasos seria los mismos.

Lo que son funciones, views, etc; se tiene que ir aƱadiendo manualmente si esque faltara alguna.