如何使用 capistrano 回滚到之前部署的版本?
Posted
技术标签:
【中文标题】如何使用 capistrano 回滚到之前部署的版本?【英文标题】:How do you roll back to the previously deployed version with capistrano? 【发布时间】:2010-10-04 13:31:38 【问题描述】:我尝试使用“上限回滚”,但出现以下错误:
$ 上限回滚
任务“回滚”不存在
我需要做一些额外的设置才能让回滚工作吗?
【问题讨论】:
【参考方案1】:简单回滚:
$ cap deploy:rollback
回滚到特定版本:
$ cap deploy:rollback -s previous_release= [path to previous release under releases folder ]
【讨论】:
【参考方案2】:如果您使用多阶段 gem(例如,您的 deploy.rb 文件中有 require 'capistrano/ext/multistage'
)使用不同的环境(例如,登台、生产),则 Capistrano 默认为登台。因此,要回滚生产环境,您可以:
cap production deploy:rollback
并且,假设您设置了默认值,这将回滚暂存:
cap deploy:rollback
值得了解您是否使用不同的环境,并想知道为什么它不适用于生产。
【讨论】:
【参考方案3】:其实是
cap deploy:rollback:code
deploy:rollback 可能会回滚到以前的版本,不一定是以前部署的版本。
【讨论】:
我意识到这个答案与接受的答案有很大的不同,但根据rollback
命名空间的代码,截至今天,cap deploy:rollback
的默认操作与代码执行相同的操作回滚加上重新启动。参考:github.com/capistrano/capistrano/blob/master/lib/capistrano/…【参考方案4】:
刚刚在这里http://github.com/leehambley/railsless-deploy找到答案:
上限部署:回滚
【讨论】:
好资源。这个似乎有更多的方法和更多的文档:capitate.rubyforge.org/recipes/deploy.html 如果我不仅想回滚到之前的部署,还想回滚到之前的某个部署,该怎么办?是否有一些参数或环境变量可以传递给这个命令,指定我想回滚到哪个版本? 有没有办法回滚到某个特定版本? This answer 在 Capistrano 3 中不起作用。以上是关于如何使用 capistrano 回滚到之前部署的版本?的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk:如何将 RDS 模式回滚到已知的良好状态?