Soy consciente de Capistrano pero es un poco demasiado pesado para mí. Personalmente configuré dos repositorios Mercurial, uno en el servidor de producción y otro en mi máquina de desarrollo local. Regularmente, cuando una nueva característica está lista, envío los cambios desde el repositorio en mi máquina local al repositorio en el servidor, y luego actualizo en el servidor. Esta es una manera bastante simple y rápida de mantener los archivos sincronizados en varias computadoras, pero no ayuda a actualizar la base de datos.¿Cómo se actualiza la aplicación web en el servidor?
¿Cuál es su solución al problema?
Estoy haciendo lo mismo, pero últimamente me hizo pensar que esto realmente no es atómico. No es óptimo para un sitio web utilizado constantemente (las personas pueden acceder a él en una etapa interrumpida en la que aún no se han sincronizado todos los archivos). – Gilles
Agregaré que una forma más óptima de hacerlo es sincronizar a una carpeta A mientras que la carpeta B contiene su sitio web en vivo y luego hacer el cambio de forma A a B sobrescribiendo un enlace simbólico que apunta a la versión actual en vivo. Y luego la próxima vez, rsync a B. – Gilles