Переопределение задач rake по умолчанию для rails

У меня есть проект Rails 2.2, в котором я хочу переопределить функциональность задачи rake db: test: prepare . Я думал, что это сработает, но это не так:

#lib/tasks/db.rake
namespace :db do
  namespace :test do
    desc "Overridden version of rails' standard db:test:prepare task since the schema dump used in that can't handle DB enums"  
    task :prepare => [:environment] do
      puts "doing db:structure:dump"
      Rake::Task['db:structure:dump'].invoke
      puts "doing db:test:clone_structure"
      Rake::Task['db:test:clone_structure'].invoke
    end   
  end
end

Я получаю стандартное поведение задачи. Если я изменю имя задачи на : prepare2 , а затем сделаю rake db: test: prepare2 , то все будет нормально. Естественный вывод, который я делаю из этого, состоит в том, что мои rake-задачи были определены раньше встроенных Rails, поэтому моя задача заменена стандартной : prepare задачей.

Кто-нибудь может увидеть, как я могу это исправить? Я бы предпочел переопределить это, чем использовать новую задачу. Спасибо, макс

71
задан theUtherSide 18 October 2016 в 03:45
поделиться