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.
Abrimos el programa, y la seleccionamos la base de datos MS Access:
Seleccionamos las tablas que queremos migrar:
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.
Procedemos a ejecutar la migración:
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++:
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.
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.
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.
Seleccionamos las tablas, e iniciamos el proceso:
Comprobamos que se ha creado la base de datos ejemplo2 correctamente.
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.
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.