预先安排现有的rake任务

时间:2017-12-13 00:34:56

标签: ruby-on-rails rake migrate

再次定义现有rake任务会附加到原始任务,但我想 prepend 到db:migrate任务。我希望在某些情况下事先提出错误。有没有一种好的方法可以预先添加到现有的rake任务中?

2 个答案:

答案 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