MS Access to MySQL – SQLite Migration Tool

Posted by in Bases de datos, Noticias

En esta entrada les presento la herramienta MS Access to MySQL – SQLite Migration Tool, de creación propia y que ahora hago pública, cuyo objetivo es

Migrar la estructura y el contenido de una base de datos MS Access a MySQL y también a SQLite.

Se trata de una herramienta que facilita la migración de archivos de Microsoft Access a bases de datos MySQL o MariaDB y a SQLite.

La primera versión pública es la versión 2.2, ya que ahora es cuando considero que está la herramienta más madura (por supuesto, conforme la vayan usando saldrán bugs o mejoras).

El porqué de este software? Básicamente porque no me convencían muchas de las herramientas que he probado hasta ahora, y aunque en un principio estaba centrada únicamente en MySQL o MariaDB como destino, he ampliado a SQLite en esta última versión, dado el aumento de popularidad en los últimos tiempos de esta base de datos, y también estoy dejando de trabajar con MS Access.

Características de MS Access yo MySQL – SQLite Migration Tool

Son:

  • Crea el código SQL para migrar la estructura y el contenido de una base de datos MS Access, tanto en los formatos .mdb como .accdb a MySQL-MariaDB, o SQLite version 3
  • 4 opciones de migración:
    • Generar código SQL para bases de datos MySQL-MariaDB (formato texto)
    • Migrar directamente a servidor de bases de datos MySQL-MariaDB
    • Generar código SQL y a su vez, migrar directamente a MySQL-MariaDB
    • Generar el código SQL para bases de datos SQLite (formato texto)
  • Al generar código SQL, se puede separar en dos ficheros diferentes la estructura de los datos (o todo en un único fichero), tanto para MySQL-MAriaDB como para SQLite
  • Generar solo código SQL para la estructura de la base de datos, tanto para MySQL-MariaDB como para SQLite
  • Posibilidad de migrar sólo los datos, sin migrar la estructura de la base de datos
  • Incluir vistas (VIEWs)
  • Opción de dividir los ficheros de datos en varios archivos a partir de X registros (esto facilita las migraciones de tablas con muchos registros, con un mínimo de 10.000)
  • Antes de migrar, se puede conocer el número de registros de cada tabla
  • Programación del proceso, para que se haga a una hora concreta, y no en el acto
  • Información del proceso en todo momento

Caso práctico

La mejor forma de ver el funcionamiento de esta herramienta es poniéndola en práctica. Para ello, tengo una base de datos MS Access con las provincias y municipios de españa.

Base de datos MS Access

Base de datos MS Access

Abrimos el programa, y la seleccionamos la base de datos MS Access:

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Seleccionamos las tablas que queremos migrar:

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Ahora seleccionamos la opción, en este caso, queremos crear un fichero de texto con la base de datos, para MySQL. Además, hemos seleccionado el motor MySQL, en este caso InnoDB, además de que queremos la estructura y los datos, cada uno en ficheros independientes, y que cree un fichero de texto nuevo cada 100.000 registros.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Procedemos a ejecutar la migración:

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Durante el proceso, se ha detectado que ninguna de las tablas disponía de clave primaria, información que puede ser muy util. Comprobamos en el explorador los archivos creados, y lo abrimos desde Notepad++:

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Es hora de pasar a cargar en MySQL el resultado de los ficheros obtenidos, y lo hacemos desde un administrador GUI de MySQL. Primero, la estructura, y después los datos.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Y ya tienen migrado la base de datos desde Microsoft Access a MySQL-MariaDB. Refrescamos las bases de datos, y podemos comprobar que tenemos el ejemplo que hemos hecho.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Migrando directamente a MySQL

Otra de las opciones es migrar directamente a MySQL, en lugar de guardar estructura y datos en ficheros de texto. Para ello, se selecciona la opción correspondiente, y el proceso se ejecuta directamente sobre el servidor. Para ello, es indispensable escribir las credenciales de acceso al servidor y probar que la conexión es satisfactoria.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Seleccionamos las tablas, e iniciamos el proceso:

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Comprobamos que se ha creado la base de datos ejemplo2 correctamente.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Y que es exáctamente igual que ejemplo, tal cual vimos en el apartado previo con archivos SQL.

Ambas opciones

Existe una tercera opción que es aplicar las dos anteriores, esto es, generar los ficheros (por ejemplo, por que se desea mantener una copia de seguridad) y a su vez, se ejecuta el proceso en el servidor. Para ello, hay que seleccionar la opción correspondiente, y completar los datos tanto de conexión con el servidor, como el archivo/s a generar.

MS Access to MySQL-Sqlite Migration Tool

MS Access to MySQL-Sqlite Migration Tool

Migración a SQLite

La última de las opciones es exportar a SQLite. Debido a que las escasísimas opciones para trabajar con Visual Basic 6 con esta base de datos, sólo es posible migrar los datos a un archivo SQL, que posteriormente será ejecutado.

Espero que les haya resultado interesante.

Google+ Comments - Comentarios Google+