¿Cómo puedo hacer actualizaciones a un sitio, en una copia de desarrollo, pero luego mover las actualizaciones hacia atrás sin anular la base de datos en evolución del sitio en vivo?

20

Traté de ser lo más descriptivo posible en el título, y sé que esta pregunta se ha formulado antes en varias formas, pero no pude encontrar una buena respuesta y es para imaginar que nadie ha resuelto este problema.

Es simple, una vez que un sitio de WP está activo, si no es estático, continúa actualizando su base de datos al agregar nuevas publicaciones, nuevas órdenes de comercio, nuevas cuentas de usuario, etc.

Si quiero hacer algunos cambios y actualizaciones importantes en el sitio, la forma más simple y fácil de hacerlo es hacer una copia en una instalación local o en otro dominio de desarrollo, y hacer todos los cambios allí. Una vez que se hayan realizado todos los cambios, quiero copiarlos nuevamente en el sitio en vivo.

Si los cambios son solo a archivos, como theme y css, eso es algo fácil. Sin embargo, si los cambios involucran cambios en la base de datos, como agregar nuevos complementos y agregar contenido que se conecta / se relaciona con estos complementos, entonces ya no puedo simplemente copiar el sitio de nuevo, ya que anulará cualquier cambio nuevo que se haya agregado a la vida base de datos del sitio. Se borrarán todas las publicaciones nuevas, pedidos nuevos, cargas de imágenes nuevas.

Ahora sé que diferentes escenarios de casos tienen diferentes soluciones, pero ¿no existe un método que aborde todos los casos?

Por ejemplo, si los únicos cambios que se hicieron al sitio en vivo fueron publicaciones nuevas, entonces puedo exportar e importar las publicaciones al sitio de desarrollo y luego mover todo el sitio. Lo mismo con algunos otros artículos, pero no todos los tipos de artículos. Y el otro problema con esto es que la función de exportación e importación en WordPress es abismal. Es muy rudimentario y tiene muy pocas opciones para seleccionar y exportar solo elementos específicos. Probablemente he probado todos los complementos de "importación / exportación avanzada" y nada tiene que resolver este problema.

Entonces, en otro hilo, alguien señaló este complemento básicamente para instalar y trabajar en un tema en el sitio en vivo, mientras que los usuarios regulares aún ven el tema existente, pero eso aún no resuelve todo tipo de cambios. porque si desea realizar cambios en el contenido, digamos el pie de página o el menú de navegación, es algo que todavía se reflejará en el tema / sitio visible existente y podría verse bien en el nuevo tema de prueba, pero no en el tema en vivo.

¿No hay forma de desarrollar una "rama" de un sitio en el mismo sitio / base de datos y luego cambiar? ¿o no hay forma de desarrollar en un sitio de desarrollo pero luego fusionar bases de datos de una manera no destructiva? Si sabes qué componentes y cosas has afectado, ¿no habría una manera de hacerlo? o necesitarías ser un maestro de MySQL para intentar tal cosa.

No puedo ser el único que tiene este enigma. No puedo imaginar que no haya una solución para este problema. ¿Cómo se puede hacer esto?

Gracias por adelantado.

James
fuente
3
Todo el mundo tiene este problema y no existe una solución simple: mantener el código en control de revisión, volcar sql a menudo en un servidor intermedio, crear bloqueos de mantenimiento durante las migraciones (5-10 minutos).
Wyck
No estoy de acuerdo. El complemento RAMP de CrowdFavorite es una solución simple para aquellos que necesitan organizar e implementar contenido. Llamarlo una "solución simple" puede ser difícil, pero es bueno y cualquier desarrollador debería poder configurarlo (requiere SSH y acceso remoto a MySQL, etc.)
jb510
¿Alguien ha intentado sitepush ? No me importa pagar $ 250 por Ramp si es una mejor solución, pero es difícil ver desde afuera qué tan bien funcionan estos sistemas sin una implementación y pruebas completas, supongo.
James
No he usado sitepush. Sin embargo, parece que empuja los DB completos (como Migrate WP DB Pro). Es bueno para implementar un sitio estático, pero falla en una dinámica en vivo (es decir, nuevas publicaciones / comentarios que suceden). RAMP realmente gestiona la diferencia entre DBs y fusiones, no reemplaza la DB en vivo.
jb510
Es posible que desee utilizar DBV PHP , un proyecto de código abierto, poniendo su base de datos bajo control de versiones. Incluso tiene una interfaz de usuario para facilitar la administración. Otra opción sería cambiar a, por ejemplo, Laravel, que tiene una herramienta de migración integrada en su aplicación CLI.
kaiser

Respuestas:

2

Realmente no hay una manera fácil de hacer lo que quieres hacer, pero lo que yo haría es hacer una instantánea de tu sitio, implementar tus cambios y, si algo, los frenos se restauran e intentarlo de nuevo. Podría estar inactivo durante una hora, pero hace poco hice esto cuando de alguna manera bloqueé un sitio en el que estaba trabajando. Esta podría no ser la forma "correcta" de resolver el problema, pero para mí funciona. Buena suerte.

usuario57081
fuente
¿Cómo puede ser posible que el equipo de WP no haya pensado en una forma profesional de hacer esto? es 2018 !!
asael2