我的root capistrano有一个转储数据库的任务:cap production dump
或cap staging dump
将转储数据库。
现在,我想在暂存中定义一个将在生产中运行此任务的任务。
我能做到
desc 'Updates the database of acceptance with the latest production database'
task :update_db do
run_locally do
execute :cap, 'production', 'dump'
# move dump-file from production, via local, to acceptance
end
on roles(:db) do
execute :rake, 'db:data:load'
end
end
但是通过shell从cap任务中运行一个cap任务感觉很难看 脆弱。
我找到了 Calling a multistage capistrano task from within a capistrano task 但这不起作用,可能是因为它是旧的解决方案 卡皮斯特拉诺的版本。有没有办法在某个“舞台”上运行某个capistrano任务 来自卡皮斯特拉诺?