Capistrano部署但手动运行迁移
问题描述:
我正在使用Capistrano部署Rails应用程序。我正考虑数据库发生更改的情况,因此我不能简单地使用cap deploy
,因为在代码更新之前需要运行迁移。我意识到有一个cap deploy:migrations
,但这比我想要的更自动一点。我想要:Capistrano部署但手动运行迁移
- 将新代码推送到releases目录,但不更新符号链接或重新启动应用程序。
- ssh进入服务器,运行
rake:db_abort_if_pending_migrations
以确认我想运行的迁移是唯一未决的迁移,然后手动运行rake db:migrate
。 - 完成部署,更新符号链接并重新启动应用程序。
是否有任何简单的方法可以通过内置的Capistrano任务来完成此任务,还是我需要编写自己的部署步骤来完成此任务?
我也应该提到,我正在考虑可以在实时数据库上运行迁移的情况(如添加列)。对于更具破坏性的更改,我意识到我需要在部署过程中使用维护页面关闭网站。
答
尝试:
cap deploy:update_code
你在手动描述了登录电子服务器或通过
cap shell
cap deploy:symlink deploy:restart
更多信息请参见cap -e deploy:update_code deploy:symlink deploy:restart deploy:shell
。
我希望这会对你有所帮助。
这应该这样做,谢谢!在Capistrano的任务流程中是否有任何文档(即“cap deploy”实际按什么顺序运行的子任务)? – jrdioko 2011-03-09 18:58:38