有人在这里问过类似的问题:
https://github.com/jimweirich/rake/issues/257
维护者的答案是:
I am going to reject this since it allows you to use tasks in non-rake-like ways.
如果任务依赖于其他任务,那么使用rake的正确方法是什么。
task 'succeed' => ['db:drop','stats'] do something end
显示统计结果,即使Postgres引发错误,db:drop因活动连接而失败。
如果rake不适合系统维护,我应该使用哪些工具? 我需要能够运行数据库的备份,然后进行一些测试,然后删除数据库,最后从备份恢复。
嗨你理解我的问题看下面的片段
namespace :experiment do
desc "TODO"
task 'succeed' => ['stopme', 'stats'] do
puts 'this and stats task should not run'
end
desc "TODO"
task stopme: :environment do
Rake::Task['db:drop'].invoke
end
end
答案 0 :(得分:2)
您可以像这样手动调用任务:
task :stats => :environment do
Rake::Task['db:drop'].invoke rescue nil
# do something
end