MySQL

Bueno, pues ésta es una de las cositas que he descubierto en el proceso de migración de Proyecto Isla. Ya había realizado alguna que otra migración, y lo cierto es que nunca me había encontrado con algo como esto: al exportar las bases de datos desde Hostgo a phi:hosting, los caracteres de todos los textos perdían el formato. Me refiero, como debes suponer, a acentos, ñ y signos especiales. ¿Qué ocurría? Simple (pero delicado): hostgo trabaja con MySQL 4.1.13, mientras que phi:hosting, por razones de seguridad (consideran que la versión 4.1. es aún inestable en algunos puntos), lo hace aún con MySQL 4.0.25. Es decir, que me encontraba trasladando mis bases de datos desde una versión reciente a otra más antigua, justamente lo contrario de lo que resulta normal: cambiar a una versión más avanzada.

Pues bien, el problema radicaba, fundamentalmente, en que las nuevas versiones de MySQL incorporan un nuevo atributo, Collation, que afecta a la codificación de caracteres y que se integra al final de cada tabla en el proceso de exportación. Al intentar importar en la versión 4.0, lógicamente da un error. Y no se puede importar. Lo grave: Hostgo tenía configurado el servidor en latin1; y phi:hosting en UTF-8.

Esta primera alegría en mi mudanza fue rápidamente resuelta al percatarme de que el menú de exportación de la versión 4.1.13 incorpora la posibilidad de exportar en formato 4.0. Y no me lo pensé dos veces. Exporte. Importé. Y voilá… los caracteres al carajo. ¿Callejón sin salida? Probablemente. Lo único que hace la exportación en formato 4.0 es suprimir la cadena en la que se integra el famoso Collation, pero al mismo tiempo impide que se salven los textos con los caracteres adecuados.

Tras recorrer como un poseso la red en busca de soluciones, llegué al convencimiento de que sólo había tres salidas:

a) Que phi:hosting actualizara de la versión 4.0 a la 4.1

b) Que phi:hosting formateara el servidor en latin1

c) Que Manolito Almeida se buscara la vida.

¿Cuál prosperó? Efectivamente, has acertado: la c). Las dos primeras opciones requerían, respectivamente, que o bien phi:hosting dejara sin servicio durante un buen tiempo a sus usuarios y se arriesgara en una versión en la que no confían, o bien se cargaran el formato de caracteres de todos los sitios alojados en sus máquinas con el único, pero noble fin, de que Proyecto Isla se viese lo bonito que es.

Además de recurrir a los manuales específicos de MySQL y de cuanto a Character Set y Collation encontré en Google, la gente de phi:hosting me recomendó un tópic del foro de WordPress. Lo probé todo, pero nada. Y justo cuando estaba a punto de arrojar la toalla (probablemente para recogerla poco después), se me encendió una lucecita.

Y esto fue lo que hice:

a) Llegué a la conclusión de que la conversión de caracteres se producía en algún punto de la exportación, porque al abrir el archivo .sql, ya aparecían los signos mal dibujados. Es decir, descartaba que tuviera algo que ver con la importación.

b) Observé cómo la conversión de caracteres se producía sólo al exportar a archivo (fichero que te descargas en el ordenador), pero no cuando se exportaba en formato 4.0 a pantalla (se te abre un frame en la pantalla), siempre y cuando tuviera la codificación del ordenador en UTF-8.

c) ¿Y si recurro al viejo copio y pego de toda la vida, copio de la pantalla y pego en un fichero de texto previamente creado? Ahí me habría saltado el mecanismo de configuración de la exportación y, con un poco de suerte, la versión 4.0 lo reconocería al importar. ¿Tan fácil? Hmmm…

d) ¡Dicho y hecho! Un éxito y una alegría que no podría describir, más que nada porque podría volver a saturar el servidor. Y tampoco es plan, oshe.

Seguramente habrá quien piense: “pues vaya tontería”, y quien ya conociera el remedio antes que la enfermedad, pero les puedo asegurar que, si bien la solución ha sido fácil, el camino para llegar hasta ella ha sido complicado y angustioso, entre tanta página suspendida, tanta migración paralizada, y tantas ganas de volver a la Red. Ni siquiera en Hostgo o en phi:hosting sabían darme una solución.

Simplemente lo cuento por si alguien más se ve en la tesitura. La necesidad aviva la imaginación, y la mía andaba ya un tanto desbordada.

Share