Home > BBDD, GNU/Linux, Prompt > Pasar de Access a MySQL

Pasar de Access a MySQL

   July 2nd, 2009 Güimi Leave a comment Go to comments

Tengo unos compañeros que se empeñan en utilizar Ms-Access, que es de los pocos programas que no funcionan de manera alguna en GNU/Linux (solo queda el recurso de usar una máquina virtual, como VirtualBox).
Por ello cuando necesito trabajar con ella (o ellos necesitan hacer consultas rápidas y como no saben me lo piden a mi) utilizo un pequeño script para pasar las tablas de Ms-Access a MySQL.
Y dice así:

#!/bin/bash
#
# vuelca_mdb 0.1 - GPL
# (c) Guimi
# http://guimi.net
#
# Ult. mod: Guimi 2009-07
#

# DATOS DEL FICHERO MDB
mdb=xxx.mdb
TABLA1=XXX
TABLA2=YYY

# DATOS DE MYSQL
bbdd=xxx
usuario=xxx
clave=xxx

# FICHERO TEMPORAL
tmp="tmp.$$"

echo "Exportando desde mdb..."
mdb-schema $mdb -S > sql-creacion_mdb$$.sql
mdb-export $mdb $TABLA1 -S -I > sql-datos_mdb$$.sql
mdb-export $mdb $TABLA2 -S -I >> sql-datos_mdb$$.sql

echo "Modificando ficheros exportados..."
# Hay que añadir "IF EXISTS" al "DROP TABLE"
sed 's/DROP TABLE/DROP TABLE IF EXISTS/g' sql-creacion_mdb$$.sql > $tmp
# Hay que cambiar "Long Integer" por "Integer"
sed 's/Long Integer/Integer/g' $tmp > sql-creacion_mdb$$.sql

# Hay que añadir un punto y coma ";" al final de cada linea -que acaba en ")"-
sed -e s/.$/\)\;/g sql-datos_mdb$$.sql > $tmp
mv $tmp sql-datos_mdb$$.sql

echo "Cargando datos en MySQL..."
mysql -D $bbdd -u $usuario --password=$clave < sql-creacion_mdb$$.sql
mysql -D $bbdd -u $usuario --password=$clave < sql-datos_mdb$$.sql

echo "Borrando ficheros temporales..."
rm sql-creacion_mdb$$.sql
rm sql-datos_mdb$$.sql


A continuación otros comandos que pueden ser utiles (proceden del paquete mdbtools).

Mostrar la versión del fichero mdb:
$ mdb-ver xxx.mdb

Mostrar las tablas de un fichero mdb (-1 para mostrar una tabla por fila):
$ mdb-tables -1 xxx.mdb

Generar un fichero C con un Array con los datos de una tabla:
$ mdb-array xxx.mdb TABLA

Access, mdb, mysql, script, prompt, Ms-Access, mdbtools
Categories: BBDD, GNU/Linux, Prompt
  1. No comments yet.
Para los artículos:
Creative Commons License 2003-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia "Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.

Puede ver una copia de esta licencia completa.

Para el código de programación:
General Public License GPL 2 - Copyright (c) 1998-2009 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los desarrollos bajo los términos de la licencia "GNU General Public License, Versión 2" de Free Software Fundation.

Puede ver una copia de esta licencia completa.

Reconocimiento tautológico: Todas las marcas pertenecen a sus respectivos propietarios.