Ich habe ein Rails 2.2-Projekt, in dem ich die Funktionalität der rake db:test:prepare
Aufgabe überschreiben möchte . Ich dachte, das würde funktionieren, aber es funktioniert nicht:
#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
Ich bekomme das Verhalten der Standardaufgabe. Wenn ich den Namen der Aufgabe in ändere :prepare2
und dann tue rake db:test:prepare2
, funktioniert es einwandfrei. Die natürliche Schlussfolgerung, die ich daraus ziehe, ist, dass meine Rake-Aufgaben vor den integrierten Rails- Aufgaben definiert werden, sodass meine Aufgaben von der Standardaufgabe überschrieben werden :prepare
.
Kann jemand sehen, wie ich das beheben kann? Ich würde es lieber überschreiben, als eine neue Aufgabe verwenden zu müssen. Danke, max