我正在使用Capistrano部署Rails应用程序。我正在考虑存在数据库更改的情况,因此我不能简单地cap deploy
因为迁移需要在代码更新之前运行。我意识到有一个cap deploy:migrations
,但这比我想要的更自动一些。我想:
rake:db_abort_if_pending_migrations
确认我要运行的迁移是唯一的待迁移,然后手动运行rake db:migrate
。使用内置的Capistrano任务是否有任何简单的方法可以执行此操作,或者我是否需要编写自己的部署步骤来完成此任务?
我还应该提一下,我正在考虑可以在实时数据库上运行迁移的情况(如添加列)。对于更具破坏性的更改,我意识到我需要在部署期间使用维护页面关闭网站。
答案 0 :(得分:5)
尝试:
cap deploy:update_code
执行您所描述的手动或通过cap
shell
cap deploy:symlink deploy:restart
有关详细信息,请参阅cap -e deploy:update_code deploy:symlink deploy:restart deploy:shell
。
我希望这会对你有所帮助。