Blog

Migrar un sitio de una Network a un sitio simple en WordPress

Hace un poco de tiempo tuve que migrar un sitio web que tenía un poco más de 200MB en media y un XML de unos 9MB.

Antes de intentar lo que explicaré, traté de importar el XML (como lo he hecho siempre), el cual exporto del sitio en el Network y lo importo en una instalación simple.

El problema es que no pueden ser XML muy grandes o el servidor me daba el error 500, por un timeout. Además de tener que hacer las configuraciones para que el sitio web quede igual que el de la Network.

Por eso, hago este tutorial, para que no pierdas casi un día de trabajo (como yo lo hice).

Lo primero, la base de datos

Haz un Backup de tu base de datos (de la Network). Una vez tengas eso, ya podemos proceder a exportar las tablas del sitio actual. Para saber que sitio es, basta con ir al Super Administrador y en la sección de sitio, en editar pones el mouse encima y te da un IR en el URL, ese es el ID.

Ya con el ID, vas a tu gestor de Base de Datos y exportas las wp_ID_xxxx, donde “wp” es el prefijo de tu base de datos, sino lo cambiaste en la instalación de tu Network será ese, el ID de tu sitio web y las 11 tablas (más las que creen tus plugins), además debes exportar wp_users y wp_usermeta.

Transferir tu contenido

Uno de los problemas con sitios grandes son todas las imágenes del sitio web. La forma más rápida de hacerla es por medio de SSH, no soy experto ni nada pero con una leída te vas. Lo primero es bajar una aplicación para conectarte por medio de SSH a tu servidor, yo utilicé Putty.

El comando es:

scp [[user@]from-host:]source-file [[user@]to-host:][destination-file]

Puedes ver la referencia aquí. En mi caso yo tengo alojados mis sitios en Mediatemple, y era una migración local (de carpeta a carpeta) por lo que el script me quedó así:

scp -r /micarpeta de archivo originales/ /ruta de carpeta a donde van los archivos/uploads/

La -r permite poder copiar folders completos, para saber que carpeta debes copiar basta con ir /wp-content/blogs.dir/files/ID de mi sitio/. Vas a pasar tus archivos a /uploads/ pues en una instalación simple,  es la configuración default.

Importación de base a sitio simple.

Dado a que solo copiamos los archivos subidos al sitio, debemos copiar la versión de WP que estemos trabajando, como si fuera una instalación nueva PERO SIN INSTALARLO.

En el gestor de bases de datos, importas la base de datos que exportamos a la nueva y te vas al ejecutador de SQL y corres los siguientes scripts:

RENAME table `wp_MI-ID_commentmeta` TO `wp_commentmeta`;
RENAME table `wp_MI-ID_comments` TO `wp_comments`;
RENAME table `wp_MI-ID_links` TO `wp_links`;
RENAME table `wp_MI-ID_options` TO `wp_options`;
RENAME table `wp_MI-ID_postmeta` TO `wp_postmeta`;
RENAME table `wp_MI-ID_posts` TO `wp_posts`;
RENAME table `wp_MI-ID_terms` TO `wp_terms`;
RENAME table `wp_MI-ID_term_relationships` TO `wp_term_relationships`;
RENAME table `wp_MI-ID_term_taxonomy` TO `wp_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_usermeta`;
RENAME table `wp_users` TO `wp_users`;

Además de las tablas extras que tengas, otra forma de hacerlo (y a mi me gusta más) es ir en el gestor hasta abajo, luego de seleccionar las tablas, y cambiar desde allí el prefijo.

Luego debes correr:

SELECT * FROM `wp_options` WHERE `option_name` LIKE '%wp_%'

Y cambiar todos los que te den de resultado para hacer que las opciones generales te queden bien.

SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'

Y aquí para que los usuarios estén bien, quitandole el wp_MI-ID a solo wp.

db-preffix

Luego de eso, ya sigues mi tutorial de migración de sitio web.

Notas

Si tienes problemas con ver el media, ve a Ajustes -> Media y cambia la carpeta, muy posiblemente esté con /blogs.dir/files/miID/ y cambiala a /uploads/ que fue la carpeta donde los subiste ahora.

Si los permalinks no funcionan, solo genera el .htaccess otra vez, esto en el adminsitrador, lo hago guardando de nuevo mi configuración de permalinks.