Es ampliamente aceptado que los desarrolladores deben probar las actualizaciones a través de un sitio provisional antes de lanzarlas al servidor en vivo, sin embargo, una vez que las actualizaciones de desarrollo requieren modificaciones en Wordpress DB, las cosas se complican, ya que los usuarios en el sitio en vivo también actualizarán la base de datos.
El único flujo (confuso) que puedo imaginar es el siguiente:
- Probar en un servidor local (WAMP, XAMP, etc.)
- Una vez que esté listo para la implementación, coloque el sitio en vivo en modo de mantenimiento
- Copia de seguridad del sitio en vivo (Duplicator, sqldump, etc.)
- Cree un clon de sitio en vivo bloqueado para el sitio de preparación
- Subir modificaciones del entorno local al sitio de preparación
- Probar el sitio de preparación
- Empuje el sitio de preparación para vivir.
- Eliminar modo de mantenimiento
Inconvenientes del flujo anterior:
- los tiempos de inactividad pueden ser más largos de lo esperado para los usuarios mientras el desarrollador prueba cuidadosamente las actualizaciones en el sitio de preparación;
- puede requerir la administración manual de modificaciones: por ejemplo, los diseños del generador de páginas de origen se almacenan en la base de datos, por lo que una vez que se modifica un diseño, debe importarse manualmente en el sitio de ensayo; en este caso, podría ser adecuado simplemente colocar e importar páginas en el sitio de ensayo y, si funciona, importarlas en el sitio activo
Me pregunto si hay una forma mejor y más automatizada para lograr esto.
¿Qué piensas?
EDIT, según lo solicitado, algunas soluciones se han propuesto en el pasado pero ninguna ofrece una solución definitiva:
- 9/2010 - Sincronización de bases de datos entre desarrollo / etapas y producción
- 12/2011 - Implementación de complementos actualizados o nuevos que modifican la tabla wp_options
- 9/2014 - ¿Cómo cargar cambios locales en un servidor en vivo sin anular nuevas publicaciones / páginas?
- 1/2015 - ¿Cómo mantener los blogs del sitio de WordPress en producción y puesta en escena?
Respuestas:
Los proveedores de alojamiento más nuevos que se adaptan específicamente a WordPress generalmente tienen herramientas para aliviar este dolor. Puse a mis clientes en Pantheon que tiene este flujo de trabajo ordenado habilitado para Git , donde el código solo se mueve hacia arriba (desde el desarrollo hasta la producción) y las cosas de DB solo se mueven hacia abajo (viceversa desde el código). Copiar una base de datos de producción a puesta en escena es un clic con su interfaz. Siempre que se respete este flujo de trabajo, esto prácticamente elimina el problema de desordenar la base de datos de producción, lo que me permite probar siempre mis cambios en un nuevo clon de datos de producción DB en cualquier etapa de desarrollo.
Uno no tiene que usar Pantheon: puede adoptar un enfoque similar en su proceso utilizando sus propias herramientas (Git + un complemento de clonación de DB como WP Migrate DB). Me parece que esta forma funciona bien para mí.
Pregunta: ¿por qué pondría su sitio de producción en modo de mantenimiento mientras prueba la puesta en escena? No debería ser necesario en la mayoría de los casos. El único caso en el que puedo pensar es en tener algún tipo de sistema muy frágil altamente sensible a los datos adicionales del usuario que se ingresan, con un error catastrófico para arrancar, pero eso probablemente sea indicativo de un problema diferente y más grande en el que uno necesitaría repensar la arquitectura completa de sus productos.
fuente
Eche un vistazo a VersionPress, que lleva el control de versiones GIT a todo el proceso (archivos y base de datos)
Como se describe en su sitio:
fuente