En ocasiones la migración funciona, en otras simplemente todo se rompe. ¿Qué sucede? Seguramente has hecho algo así: hiciste un volcado de la base de datos, sustituiste todas y cada una de las cadenas que hacían referencia al dominio viejo por el nuevo dominio, y entonces… no funciona.
El problema es la serialización
WordPress no sólo almacena cadenas simples en su base de datos, también almacena objetos serializados. Estos son representaciones en cadena de estructuras y otros objetos, a fin de poder ser restaurados y utilizados posteriormente.
Editar directamente un objeto serializado, casi siempre implica corromperlo, y en este hecho radica buena parte de las migraciones fallidas que se llevan a cabo simplemente sustituyendo unas cadenas por otras. Para actualizar la información adecuadamente es necesario un tratamiento especial para ese tipo de datos. Para ello existen varias herramientas disponibles.
Reemplazo a bajo nivel
Database Search and Replace Script in PHP
Esta herramienta permite conectarse a una base de datos y editar las cadenas que formen parte de un objeto serializado sin dañarlo. Si bien está pensada para ser utilizada en WordPress, su alcance es más general y, al menos en principio, puede ser utilizada con cualquier base de datos MySQL.
La puedes encontrar acá: Database Search and Replace Script in PHP.
Better Search Replace
Es una utilidad muy similar a la anterior (buscar y reemplazar), pero en formato de plug-in para WordPress. Hace lo que promete: sustituir las cadenas que se encuentran en la base de datos, formen parte o no de un objeto serializado, y las reemplaza con el contenido deseado.
Su página se encuentra acá: Better Search Replace.
Migración a alto nivel
WP Migrate DB
Este plug-in permite la migración automática de un sitio desarrollado en WordPress, sin preocuparte mucho por la sustitución manual de cadenas de texto.
Esta utilidad la puedes encontrar en el siguiente enlace: WP Migrate DB.
Duplicator
Como su nombre lo índica, permite la duplicación de un sitio en WordPress, haciendo posible además, la migración del mismo a otro dominio o hosting.
Pero estas no son todas sus bondades, ya que permite la creación de copias de respaldo, ideales para mantener a salvo nuestra información.
Puedes encontrar el plug-in acá: Duplicator.
All-in-One WP Migration
Una utilidad similar a la anterior y con funciones muy similares. Permite mover, transferir, copiar o clonar un sitio web basado en WordPress. Elegir entre esta y la anterior es cuestión de gustos.
Se puede encontrar acá: All-in-One WP Migration.
Conclusiones
Con estas herramientas se puede solventar fácilmente el problema de las migraciones para sitios que involucran el uso de entidades u objetos serializados. ¡Todavía mejor! Con una de ellas es posible la manipulación de cualquier base de datos a voluntad del desarrollador.