Dbf (Data Base File) es formato simple para almacenar datos estructurados, utilizado por Dbase, Paradox, Clipper, FoxPro y seguro que nos olvidamos de alguno más.
Por esto, puede que os surja la necesidad de convertir esas tablas en una tabla de mysql, por ello en esta entrada vamos a ver las opciones que utilizamos.
DESDE LA PROPIA CONSOLA DE LINUX:
Desde la propia terminal de linux es bastante sencillo, solo necesitamos dbf2mysql.
Utilizando dfb2mysql, instalando en UBUNTU
sudo apt-get install dbf2mysql
Una vez lo tengamos instalado , solo tenemos que crear la BD en mysql, y luego con la siguiente instruccion:
dbf2mysql -h [SERVIDOR] -U [USUARIO] -P [CONTRASEÑA] -d [BASEDATOS] -t [NOMBRETABAL] -c -f /path/del/fichero/nombrefichero.dbf
No es un proceso rápido y por lo que la duración del proceso puede ser largo ya que depende de los registros y lo pesada que sea la tabla, como referencia os indico que:
" Duro un par de horas el importar una tabla 250.000 registros en servidor local "
Con esto, os digo que toca esperar a que termine el comando en la terminal antes de cerrarlo , ya que sino vuestra tabla puede que no este completa.
Problemas encontrados:
- Algunos atributos que tiene dbf no los tiene en cuenta , como el auto incremento
- Algunos tipos de campos con decimales no los importa correctamente.
Referencias:
-Blog de manel perez
-Github un proyecto con modificaciones dbf2mysql
Importar dbf con python
Cuando la cosa se nos pone compleja a la hora importar dbf, lo que hacemos es utilizar Python y una librería llamada dbfread, la cual nos permite leer los dbf , luego con un pequeño script podemos tratar los datos leido y añadirlos a donde queramos.
Referencias:
Documentacion libreria dbfread.