Capistrano 3 版本的 on_rollback?

All*_*ate 4 capistrano capistrano3

升级到 capistrano 3,以下内容似乎不再起作用:

namespace :project do
  desc "Prevents executing by creating lockfile"
  task :disable do
    on roles(:app) do
      execute "touch /tmp/proj_lockfile"
    end
    on_rollback do
      execute "rm /tmp/proj_lockfile"
    end
  end
end

...
NoMethodError: undefined method `on_rollback' for main:Object
config/deploy.rb:34:in `block (2 levels) in <top (required)>'
Tasks: TOP => deploy:starting => transformer:disable
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)

是否有新任务等可以做到这一点?

Dom*_*nck 5

没有与 Capistrano 3 等效的on_rollback.

在 Capistrano 3 中,如果任何命令失败,部署就会停止,正在部署的版本会保留在原处(可能正在工作并已部署,可能不工作且已部署,或者未部署 - Capistrano 不再尝试清理) 。

请注意,这也意味着:on_error => :continue不受支持且无法替代;您必须自己begin/rescue任何例外情况。

文档的回滚部分完全是空的。