domingo, 23 de agosto de 2020

Migrar MDB de Microsoft Access a SQL MySql

Si buscas como migrar una base de datos MDB de Microsoft Access a SQL de MySql, verás que existen varios métodos para realizarlo. Tras probar diferentes, el que mejor se ha adaptado a mis necesidades ha sido el que comento aquí. Eso sí, se han perdido algunas relaciones y también los comentarios en el diseño de la estructura que había en Microsoft Access.

Lo primero que hay que hacer, es tener una máquina Linux con las mdbtools, para ello:

  •  Actualiza los repositorios para obtener la lista de los últimos paquetes y sus actualizaciones: 
tu-maquina:~: sudo apt-get update -y
  •  Ejecuta la instalación del paquete mbdtools (la opción -y es para que no te pregunte más y lo haga directamente junto con todas las dependencias):
tu-maquina:~: sudo apt-get install -y mdbtools

A continuacíon para exportar el esquema o arquitectura de la base de datos a un archivo SQL, se realizaría los siguiente:

tu-maquina:~: mdb-schema <tu-base-de-datos>.mdb mysql > squema.sql

Por último, para exportar los datos a un archivo SQL junto con el esquema o arquitectura es algo más elaborado y lo realizaremos mediante el siguiente script (en mi caso lo he llamado "mdb_to_mysql.sh":

#!/bin/bash
TABLES=$(mdb-tables -1 $1)

for t in $TABLES
do
    echo "DROP TABLE IF EXISTS $t;"
done

mdb-schema $1 mysql

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t
done

Finalmente, bastaría ejecutarlo para obtener el SQL con todos los INSERT y CREATE TABLE necesarios:

tu-maquina:~: sudo sh mdb_to_mysql.sh <tu-base-de-datos>.mdb > datos.sql

No hay comentarios:

Publicar un comentario

Problemas con python "/usr/bin/env &lt; &lt; python&gt;&gt;: No such file or directory "

Es posible que hayas llegado aquí por un mensaje similar al siguiente:  /usr/bin/env: <<python>>: No such file or directory   Cu...