Capistrano部署但手动运行迁移

问题描述:

我正在使用Capistrano部署Rails应用程序。我正考虑数据库发生更改的情况,因此我不能简单地使用cap deploy,因为在代码更新之前需要运行迁移。我意识到有一个cap deploy:migrations,但这比我想要的更自动一点。我想要:Capistrano部署但手动运行迁移

  1. 将新代码推送到releases目录,但不更新符号链接或重新启动应用程序。
  2. ssh进入服务器,运行rake:db_abort_if_pending_migrations以确认我想运行的迁移是唯一未决的迁移,然后手动运行rake db:migrate
  3. 完成部署,更新符号链接并重新启动应用程序。

是否有任何简单的方法可以通过内置的Capistrano任务来完成此任务,还是我需要编写自己的部署步骤来完成此任务?

我也应该提到,我正在考虑可以在实时数据库上运行迁移的情况(如添加列)。对于更具破坏性的更改,我意识到我需要在部署过程中使用维护页面关闭网站。

尝试:

  1. cap deploy:update_code

  2. 你在手动描述了登录电子服务器或通过cap shell

  3. cap deploy:symlink deploy:restart

更多信息请参见cap -e deploy:update_code deploy:symlink deploy:restart deploy:shell

我希望这会对你有所帮助。

+0

这应该这样做,谢谢!在Capistrano的任务流程中是否有任何文档(即“cap deploy”实际按什么顺序运行的子任务)? – jrdioko 2011-03-09 18:58:38