再次定义现有rake任务会附加到原始任务,但我想 prepend 到db:migrate任务。我希望在某些情况下事先提出错误。有没有一种好的方法可以预先添加到现有的rake任务中?
答案 0 :(得分:5)
尝试在' db'上添加db:custom
任务命名空间并使用db:migrate
方法
enhance
# add your custom code on db:custom
namespace 'db' do
task 'custom' do
puts "do custom db stuff"
end
end
# invoke db:migrate
Rake::Task['db:migrate'].enhance [:custom]
答案 1 :(得分:2)
最好定义自己的任务并调用db:migrate inside。
namespace :custom_db do
desc 'migrate db if condition true'
task :migrate do
if true #your condition
Rake::Task['db:migrate'].invoke
else
#process errors
end
end
end