Importar archivos DBF a MySQL
Publicado en Bases de datos, Linux el 6 de May de 2009 por Manel Pérez MataTags: MySQL
Pues bien, otro post provocado por una necesidad del curro… esa necesidad me ha obligado a googlear un ratito y por último, he aquí el resultado.
La cosa está en que me han pasado unos archivos en formato dbf y para poder hacer el tratamiento necesario necesitaba poderlos importar a MySQL. La solucion está en dbf2mysql, programa que de una manera bastante sencilla se encarga de hacer la importación a la base de datos MySQL.
Los flags más importantes que nos ofrece dbf2mysql són los siguientes:
- -h indica server donde conectarse
- -U usuario MySql
- -P password MySql
- -d base de datos donde se insertaran los datos
- -t tabla donde se insertarán los datos
- -c crea la tabla si no existe
- -cc crea la tabla, pero no inserta registros
- -f traduce los nombres de campo a minúsculas
- -n no se agrega ‘NOT NULL’ en las sentencias de creación de tabla
- -o exporta solo los campos listados (Ej. -o field1,field2…)
- -s substituye permite cambiar nombres de campos (Ej. -s oldName1=newName1,oldName1=newName1)
- -i lista de campos a indexar. Genera UN indice por campo (Ej. -i field1,field2…)
- -r quita espacios antes y después de datos alfanuméricos
- -v muestra detalles de la conversión
- -vv muestra más detalles
- -vvv incluye informe de progreso
Los pasos que he siguido para hacer la importacion són:
1) Instalo dbf2mysql, en mi caso desde Ubuntu:
sudo apt-get install dbf2mysql
En cualquier caso, nos podemos bajar el programa para sistemas Unix de Source Forge
2) Creo una base de datos MySQL vacia:
mysql -u [DBUSER] -p -e "CREATE DATABASE `[DBNAME]`"
3) Por último lanzamos el siguiente comando para indicarle que importe el archivo dbf a la base de datos local, en la tabla [DBTABLE] de la base de datos [DBNAME], entrando con el usuario [DBUSER] y el password [DBPASS]. Mediante el flag -c forzamos a que cree la tabla si no existe y con -f le indicamos que traduzca los nombres de los campos a minusculas:
dbf2mysql -h localhost -U [DBUSER] -P [DBPASS] -d [DBNAME] -t [DBTABLE] -c -f /path/to/file/miTabla.dbf
Es importante tener en cuenta que esta importación no tendra en cuenta algunos atributos importantes de la tabla como, por ejemplo, los campos autoincrementales. Si tenemos algun problema de este estilo, es recomendable crear la estructura de la tabla antes de realizar la importación.















July 15th, 2010 4:05
Esta clase de posts son los que muy pocas veces se usan pero cuando los necesitas te facilitan la vida como no tienes idea. Buen post y espero encontrarme con algún otro tuyo
Hasta pronto
February 22nd, 2011 22:03
gracias hermano!
tal cual lo que dijo andrés
abrazo!