У меня есть проект 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
, тогда она будет работать нормально.Естественный вывод, который я могу сделать из этого, состоит в том, что мои задачи по рейку определяются до встроенных в Rails, поэтому моя задача отменяется стандартной задачей :prepare
.
Может кто-нибудь увидетькак я могу это исправить?Я предпочел бы переопределить это, чем использовать новое задание.Спасибо, макс