• Skip to main content
  • Skip to primary sidebar

Portomaior

Software y Tecnología

  • Inicio
  • Blog
  • Contacto
You are here: Home / Wordpress / Como migrar de un wordpress normal a uno multisite

Como migrar de un wordpress normal a uno multisite

Primero decir que esto es muy avanzado y bastante lioso. Pero dejo aquí los problemas principales que me he encontrado.

Modo fácil

Creas un subdominio de trabajo en el multisite.

Instalas todos los plugins y el tema que esté utilizando el wordpress a migrar.

Desde el wp antiguo exportas todo con la Herramientas > Exportar.

Desde el wp nuevo importas el xml anterior.

Después de esto aunque carguen las imagenes, si os fijáis, veréis que las cargan de la ruta antigua. Así al menos que lo tuvieseis en un CDN, hay que hacer los updates en la base de datos que explico abajo en el modo difícil.

Cuando ya has comprobado que esta todo ok, puedes cambiar el nombre del dominio en el administrador multisite y redirigir las DNS si fuese necesario.

En muchos casos con esto queda resuelto el asunto y como mucho tendras que ajustar algún plugin, pero no funciona siempre…

 

Modo difícil

Si el tema no va del modo facil…

Crear un backup completo del antiguo wp.

Creas un subdominio de trabajo en el multisite.

Compruebas que id de multisite le ha dado a tu nuevo wp porque las tablas comenzaran con ese id.

Instalas todos los plugins y el tema que esté utilizando el wordpress a migrar.

En el MySQL antiguo, renombrar las tablas con el prefijo que le va a tocar en el wp nuevo. Por ejemplo si el id de wp en el multisite = 8. Las tablas en la BD antigua las cambias de wp_ a wp_8_ . Digo de renombrarlas en la BD antiguo porque sino puede haber conflictos en la nueva y te va a ser mas lio.

Nota: el tipico Mysql Admin web que se suele utilizar hay una opción al seleccionar las tablas para renombrar de un prefijo a otro. Cuando lo descubri me ahorró muchísimo tiempo.

En el MySQL nuevo, renombrar las tablas que creo el multisite como backup, de «wp_8_» a «wp_8_old_» por ejemplo, esto es simplemente para tenerlas a mano si hiciese falta.

Exportamos las tablas wp_8_ que renombramos en el wp antiguo y las importamos en la BD del wp nuevo.

Ya podemos empezar a updatear las url para que coincidan con la nueva ubicación.

En la nueva BD ejecutamos:

UPDATE wp_8_posts
SET post_content = REPLACE (post_content, ‘http://midominio.com’, ‘http://misubdominiodetrabajo.mimultisite.com’);

y

UPDATE wp_posts 
SET guid = REPLACE (guid, 'http://midominio.com', 'http://misubdominiodetrabajo.mimultisite.com');

pero tambien hay que tener en cuenta que los medios que estaban en wp-content/uploads/2018  estarán en wp-content/uploads/sites/8/2018, así que:

UPDATE wp_8_posts 
SET post_content = REPLACE (post_content, 'wp-content/uploads/20', 'wp-content/uploads/sites/8/20');

y

UPDATE wp_8_posts 
SET guid = REPLACE (guid, 'wp-content/uploads/20', 'wp-content/uploads/sites/8/20');

Datos Serializados

Si habéis cruzado los dedos puede ser que lo hayáis conseguido pero el problema con las tablas wp_options o wp_postmeta es que, en muchos casos, almacenen cadenas de texto serializadas. Una cadena de texto serializada en PHP no es más que una forma de almacenar datos en la base de datos. Por ejemplo, podríamos tener este conjunto de datos en PHP (un array):

array (
 'dominio' => 'http://midominio.com',
 'usuario' => 'paco',
 'edad' => 30
);

Si lo guardamos en la base de datos serializado, el resultado es el siguiente:

a:3:{s:7:"dominio";s:20:"http://midominio.com";s:7:"usuario";s:4:"paco";s:4:"edad";i:30;}

Si miras el resultado anterior con detalle, verás que los números que aparecen delante de los valores indican la longitud en caracteres (de hecho, en bytes) del valor. Para este caso, si guardamos http://midominio.com, automáticamente se indica con un 20 que la longitud (en este caso, el número de letras) es esa. Por lo que si directamente hacemos el reemplazo por http://minuevodominio.com, tendremos:

a:3:{s:7:"dominio";s:20:"http://minuevodominio.com";s:7:"usuario";s:4:"paco";s:4:"edad";i:30;}

Pero claro, http://minuevodominio.com no tiene 20 letras, sino 25. Cuando WordPress intente “deserializar” este valor, fallará inevitablemente.

En esos casos podemos utilizar un script PHP que realice las labores por nosotros. Puedes usar este script de interconnect/it que funciona tanto para WordPress como para Drupal. Lo bueno de este script es que sólo lo tienes que subir a la raíz de tu instalación WordPress (mediante FTP, por ejemplo) y acceder a él desde el navegador. Se te abrirá una interfaz como la que puedes ver en la captura anterior, dónde tendrás que indicar los datos de acceso a tu base de datos para que el script pueda acceder a ella.

A partir de ese momento, puedes usar el formulario para buscar y reemplazar valores de forma sencilla, tal y como harías en cualquier editor de texto habitual. No obstante, recuerda hacer una copia de seguridad de tu base de datos para evitar posibles problemas.

Plugins de Búsqueda y Reemplazo

Por último, aquí te dejo 4 plugins para realizar reemplazos en tus contenidos, los cuales tienen en cuenta los valores serializados y hacen la búsqueda en todas las tablas de la base de datos. Además, no necesitas nada más que instalarlos y activarlos como cualquier otro plugin. Así de fácil.

Better Search Replace

Este plugin nos permite buscar y reemplazar cualquier contenido. Tiene en cuenta valores serializados y además permite hacer una simulación para saber cuantas apariciones va a sustituir antes de realmente hacer los reemplazos.

Search & Replace

Un plugin muy parecido al anterior, para buscar y reemplazar contenidos en general. Su interfaz es muy sencilla. Sólo hay que seleccionar en qué tablas queremos realizar la búsqueda y listo.

Velvet Blues Update URLs

Es específico para modificar enlaces, ya que sólo debes decirle cual es la dirección web antigua y la nueva, y dónde quieres que haga la búsqueda (habitualmente, con marcar todas las opciones que ofrece es suficiente).

WP Migrate DB

Aunque este plugin se suele usar para hacer migraciones de webs en WordPress, también incluye la opción de buscar y reemplazar contenidos. Por tanto, si alguna vez lo has usado o ya estás familiarizado con él, será una opción a tener en cuenta cuando tengas que hacer un cambio de dominio.

Filed Under: Wordpress

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Primary Sidebar

Categorías

  • Comercio Electrónico
  • Diccionario de Informática
  • Diccionario de Marketing
  • Diccionario SEO
  • Diseño Web
  • Docker
  • Genesis Theme para Wordpress
  • Gestión de Proyectos
  • Guías Clientes
  • Hosting
  • Java
  • Linux
  • Mac
  • Odoo
  • Podcast
  • Portfolio
  • Posicionamiento SEO
  • Programación
  • React
  • Sin categoría
  • webmin
  • Windows
  • Woocommerce
  • Wordpress

Entradas recientes

  • Alternativa Windows a CCurl >> bitsadmin
  • Spring Framework de Java (redirec GKB)
  • Chuleta de Expresiones regulares. (redirec GKB)
  • Eclipse IDE
  • Java (chuleta) (redirec GKB)

Copyright © 2023 · portomaior.com · Legal · Política de Cookies · Política de privacidad · Log in