Cómo migrar subsitio de multisitio de desarrollo a multisitio de producción


12

Estoy buscando la forma mejor y más segura de desarrollar localmente una cantidad de subsitios usando multisitios y trasladarlos al entorno de producción cuando estén listos.

Ya migré la instalación multisitio completa con el primer subsitio que ahora está en vivo. Preferiría desarrollar los otros sitios en el servidor local, así que dejo el servidor de producción solo, pero obviamente no puedo hacer una migración completa nuevamente.

Busqué una solución, pero todo lo que encontré se trata de mover un solo sitio a un sitio múltiple o viceversa, no "mover subsitio de sitio múltiple a sitio múltiple".

Me gustaría mantener todo: configuraciones, widgets, etc.


1
Creo que el complemento comercial BackupBuddy puede hacer esto, pero me interesaría ver respuestas más genéricas a esto.
Rarst

Debido a las cadenas serializadas en la base de datos, no es tan fácil hacerlo. No he visto un complemento para una migración pura hasta ahora, pero eso es absolutamente algo que debería hacerse. Lo único era mover la "mayoría" de las partes de un blog a otro a través del mecanismo de exportación / importación XML, pero aún así tienes que arreglar muchos caminos después.
2ndkauboy

1
La mejor opción que tiene es hacerlo con una consulta SQL directa. Lo he hecho más de una vez, y funciona bien si eres lo suficientemente cuidadoso.
krembo99

@ krembo99, ¿podrías explicar un poco más tu técnica?
molokom

@Rarst, en lo que respecta a BackupBuddy, esto se debe a sus preguntas frecuentes: "No. El soporte de BackupBuddy Multisite es experimental. No se recomienda para sitios de producción y no es oficialmente compatible".
molokom

Respuestas:


4

Esto puede ser algo tedioso, pero espero que esto ayude. Cuanto menos cambie de un entorno a otro, menos doloroso será este proceso. Particularmente, si el dominio, la identificación del sitio y las rutas de los archivos siguen siendo los mismos, será menos doloroso este proceso.

Esta publicación supone cierto conocimiento de la gestión de bases de datos. No es un paso completo paso a paso porque debe buscar en los foros y posiblemente crear un hilo específico para cualquier paso con el que tenga problemas, por ejemplo, si necesita ayuda para exportar una tabla de base de datos.

Lo más importante es hacer una copia de seguridad de toda su base de datos y archivos para el sitio de desarrollo local y la nueva ubicación en caso de que algo salga mal. Espera que algo salga mal. Sorpréndete gratamente si no es así.

Mover tus archivos de tema debería ser bastante sencillo. Sube tus archivos de tema al directorio wp-content / themes y actívalo como de costumbre. Supongo que este es un tema compartido al que todos los blogs tienen acceso.

Suba archivos de complementos a wp-content / plugins en la nueva ubicación. No los active todavía.

Tenga en cuenta que cualquier contenido exclusivo del blog que está migrando se ubicará en un directorio que parece wp-content/blogs.dir/2/filesque 2 es la identificación del sitio. Si es posible mantener este ID de sitio en la nueva ubicación, debería ayudar a minimizar los conflictos en la base de datos después de migrar a la nueva ubicación. De lo contrario, tendrá que actualizar su base de datos para reflejar la nueva ruta.

Deberá exportar las tablas multisitio relacionadas con el blog que está intentando migrar e importarlas a la nueva ubicación. Tendrá que editar las tablas que almacenan datos relacionados con el blog que está migrando. Asegúrese de que el prefijo de estas tablas sea el mismo en la nueva ubicación.

Por ejemplo, la tabla wp_blogs para su blog contiene la identificación del blog, la identificación del sitio, el dominio y la ruta que permite que WordPress multisite reconozca y trabaje con su blog. Edite cualquiera de estos que ya no sean correctos para reflejar la nueva ubicación, pero lea el resto de esta publicación antes de intentar hacerlo.

Ver resumen de tabla multisitio

Para migrar su WordPress y la configuración de complementos para el blog que se transferirá , deberá desactivar todos los complementos localmente, luego exportar las tablas específicas de su sitio (referencia del códice), incluidas las de sus complementos. Importe estas tablas a la base de datos de la nueva ubicación.

Asegúrese de que la nueva ubicación use el mismo prefijo de base de datos que las tablas que está importando. El prefijo contendrá la identificación del sitio para su blog y tendrá un aspecto similar wp_2_options, wp_2_posts, wp_2_postmeta.
Ver Explorando WordPress Multisite por Lisa Sabin-Wilson

Supongo que sabes cómo importar / exportar a través de phpmyAdmin o con el comando mysqldump en tu terminal. Eso está un poco más allá del alcance de esta publicación, pero aquí hay un ejemplo de exportación que debería ayudar.

¿ Desde cómo mysqldump tabla (s) específica (s)? (La sintaxis se editó ligeramente para ser más clara):

Si está volcando las tablas t1, t2 y t3 de la base de datos llamada mydb

mysqldump -u <username> -p <password> mydb t1 t2 t3 > mydb_tables.sql

Antes de activar complementos en el nuevo sitio, vaya a la configuración de su enlace permanente en admin cp y guarde la configuración para actualizar los archivos de la base de datos a la nueva URL del sitio. Active sus complementos y vea si hay algún problema.

Un problema con el que puede encontrarse es con la serialización de datos en sus tablas.

"[...] Las referencias al antiguo nombre de dominio o ubicación permanecerán en la base de datos, y eso puede causar problemas con los enlaces o la visualización del tema.

Si realiza una búsqueda y reemplazo en toda su base de datos para cambiar las URL, puede causar problemas con la serialización de datos, debido al hecho de que algunos temas y widgets almacenan valores con la longitud de su URL marcada ". Cuando su nombre de dominio o URL Cambio

Tenga en cuenta que la serialización de datos también puede causar un conflicto en las tablas de la base de datos relacionadas con sus complementos. En lugar de realizar una búsqueda y reemplazo manual en la url almacenada en la base de datos, use la secuencia de comandos de búsqueda y reemplazo de la base de datos recomendada en el enlace anterior del códice. Si solo hay unas pocas instancias de serialización en la base de datos, puede editarlas manualmente a través de phpMyAdmin o cualquiera que sea su preferencia para administrar su base de datos.

Un problema más que puede encontrar es que cualquier ruta de archivo incorrecta almacenada en las tablas de la base de datos deberá actualizarse para reflejar la nueva ubicación. Este podría ser el caso de los directorios multimedia o directorios utilizados por los complementos dependiendo de cómo se diseñó el complemento. Nuevamente, querrá usar la secuencia de comandos de búsqueda y reemplazo para asegurarse de que no haya conflictos de serialización al actualizar las rutas de los archivos. Alternativamente, puede revisar sus tablas y actualizarlas manualmente.


¡Gracias! Parece que no hay ningún beneficio real en trabajar de esta manera: es una bolsa de dolor. ¿Sería mejor desarrollar un sitio único local y migrar al entorno multisitio?
molokom

Puede encontrarse con muchos de los mismos problemas, pero debería requerir menos tablas que necesita para migrar. Solo para darle una idea, aquí hay una guía decente para eso llamada Mover un blog existente a WordPress Multi-Site . Te lo dejo a ti para determinar cuál es más eficiente para ti como desarrollador.
iyrin

0

¿No podría usar las funciones integradas de Exportar e Importar de WordPress? Entonces es solo cuestión de mover el tema de una instalación a la siguiente a través de FTP. Va bastante rápido y puede migrar un sitio entre instalaciones en menos de 5 minutos.

Puede sincronizar las credenciales de usuario utilizando un complemento ingenioso llamado User Syncronization .

No lo he usado, pero ManageWP tiene una herramienta de implementación y clonación fácil de usar para ir de un sitio existente a uno nuevo ... vale la pena investigarlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.