У мене є проект 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
завдання.
Хтось може побачити, як я можу це виправити? Я вважаю за краще його перевизначити, ніж використовувати нове завдання. Дякую, макс