El último caso en el que nos podemos encontrar a la hora de subir una base de
datos a nuestro proveedor de alojamiento es que la base de datos la tengamos
creada en local, pero en un sistema gestor distinto del que vamos a utilizar en
remoto. En remoto suponemos siempre que vamos a utilizar la base de datos
MySQL.
En local podríamos disponer de una base de datos Access, SQL Server o de otro
sistema de base de datos.
El proceso de la migración puede ser bastante complejo y, como hay tantas bases
de datos distintas, difícil de dar una receta que funcione en todos los casos.
Además, aparte de la dificultad de transferir la información entre los dos
sistemas gestores de base de datos, también nos influirá mucho en la complejidad
del problema el tipo de los datos de las tablas que estamos utilizando. Por
ejemplo, las fechas, los campos numéricos con decimales o los boleanos pueden
dar problemas al pasar de un sistema a otro porque pueden almacenarse de maneras
distintas o, en el caso de los números, con una precisión distinta.
Recomendaciones para migrar de Access a MySQL Si nuestra base de datos anterior estaba construida en Access lo tenemos
bastante fácil, gracias a que MySQL dispone de un driver ODBC para sistemas
Windows, que nos permite conectar Access con el propio MySQL y pasar información
fácilmente.
Este tema está relatado en el artículo Exportar datos de MySQL a Access, aunque
hay que indicar que si deseamos hacer una exportación desde Access en local a
MySQL en remoto puede haber problemas porque no todos los alojadores permiten
las conexiones en remoto con la base de datos. Si no tenemos disponible una
conexión en remoto con nuestro servidor de bases de datos vamos a tener que
cambiar la estrategia un poco.
La idea en este último caso es instalar MySQL en local y realizar la migración
desde Access en local a MySQL en local y luego podríamos hacer un backup de la
base de datos local y subirla a remoto, tal y como se ha relatado antes.
Recomendaciones para migrar desde SQL Server a MySQL La verdad es que no he tenido este caso nunca, pero hay que decir que Access
también nos puede ayudar en este caso. Access permite seleccionar una base de
datos SQL Server y trabajar desde la propia interfaz de Access. La idea es que
Access también permite trabajar con MySQL y posiblemente haciendo un puente
entre estos dos sistemas gestores podemos exportar datos de SQL Server a MySQL.
Lo que es seguro que utilizando el propio Access de puente podríamos realizar el
trabajo. Primero exportando de SQL Server a Acess y luego desde Access a MySQL.
Otras bases de datos u otras técnicas Si la base de datos origen dispone de un driver ODBC no habrá (en teoría)
problema para conectarla con Access, de manera similar a como se conecta con
MySQL. Entonces podríamos utilizar Access para exportar los datos, porque desde
allí se podrían acceder a los dos sistemas gestores de bases de datos.
Si no tenemos Access, o la base de datos original no tiene driver ODBC, o bien
no nos funciona correctamente el proceso y no sabemos cómo arreglarlo, otra
posibilidad es exportar los datos a ficheros de texto, separados por comas o
algo parecido. Muchas bases de datos tienen herramientas para exportar los datos
de las tablas a ficheros de texto, los cuales se pueden luego introducir en
nuestro sistema gestor destino (MySQL) con la ayuda de alguna herramienta como
PhpMyAdmin.
Para ello, en la página de propiedades de la tabla encontraremos una opción para
hacer el backup de la tabla y para introducir ficheros de texto dentro de una
tabla (Insert textfiles into table en inglés).
Accediendo a ese enlace podremos ver un formulario donde introducir las
características del fichero de texto, como el carácter utilizado como separador
de campos, o el terminador de líneas, etc, junto con el propio archivo con los
datos, y PhpMyAdmin se encargará de todo el trabajo de incluir esos datos en la
tabla.

Como se habrá supuesto, es necesario tener creada la tabla en remoto para que
podamos introducirle los datos del fichero de texto.
Cambios de un formato de datos a otro
Toda la migración tiene que tener en cuenta muy especialmente, como ya se señaló,
las maneras que tenga cada base de datos de guardar la información, es decir,
del formato de sus tipos de datos. Tenemos que contar siempre con la posible
necesidad de transformar algunos datos como pueden ser los campos boleanos,
fechas, campos memo (texto con longitud indeterminada), etc, que pueden
almacenarse de maneras distintas en cada uno de los sistemas gestores, origen y
destino.
En algunos casos posiblemente tengamos que realizar algún script que realice los
cambios necesarios en los datos. Por ejemplo puede ser para localizar los
valores boleanos guardados como true / false a valores enteros 0 / 1, que es
como se guarda en MySQL. También las fechas pueden sufrir cambios de formato,
mientras que en Access aparecen en castellano (dd/mm/aaaa) en MySQL aparecen en
el formato aaaa-mm-dd. PHP puede ayudarnos en la tarea de hacer este script,
también Visual Basic Script para Access puede hacer estas tareas complejas y el
propio lenguaje SQL, a base de sentencias dirigidas contra la base de datos,
puede servir para algunas acciones sencillas.