Estoy usando Capistrano para implementar una aplicación Rails. Estoy pensando en una situación en la que hubo cambios en la base de datos, por lo que simplemente no puedo cap deploy
porque las migraciones deben ejecutarse antes de que se actualice el código. Me doy cuenta de que hay un cap deploy:migrations
, pero eso es un poco más automático de lo que me gustaría. Me gustaría:Despliegue de Capistrano pero migraciones manualmente
- Introduzca el nuevo código en el directorio de lanzamientos, pero no actualice el enlace simbólico ni reinicie la aplicación.
- ssh en el servidor, ejecute
rake:db_abort_if_pending_migrations
para confirmar que las migraciones que quiero ejecutar son las únicas pendientes, luego ejecuterake db:migrate
manualmente. - Complete la implementación, actualice el enlace simbólico y reinicie la aplicación.
¿Hay alguna manera fácil de hacerlo con las tareas incorporadas de Capistrano, o tendré que escribir mis propios pasos de implementación para lograr esto?
Debo mencionar también que estoy pensando en casos (como la adición de columnas) donde la migración se puede ejecutar en una base de datos en vivo. Para cambios más destructivos, me doy cuenta de que tendría que cerrar el sitio con una página de mantenimiento durante el despliegue.
¡Eso debería hacerlo, gracias! ¿Hay alguna documentación en algún lugar sobre el flujo de tareas en Capistrano (es decir, en qué subtareas se ejecuta 'cap event 'en qué orden)? – jrdioko