如何使用 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 模式回滚到已知的良好状态?

oracle 如何查询过去某个时间点的记录(应用于某个时间点的误操作,回滚到之前的操作)

svn回滚到之前的版本

Unity:添加画布后如何回滚到上一个场景

Github如何回滚代码?

Github如何回滚代码?