Es gibt keinen programmatischen Weg, dies leider zu tun. Rake-Tasks können entweder von Rails selbst, von lib/tasks oder von einem beliebigen Plugin mit einem Aufgabenverzeichnis geladen werden.
Dies sollte die meisten alles nab nicht innerhalb Rails selbst:
find . -name "*.rake" | xargs grep "whatever"
Was db:schema:dump
, hier ist die Quelle:
desc "Create a db/schema.rb file that can be portably used against any DB supported by AR"
task :dump => :environment do
require 'active_record/schema_dumper'
File.open(ENV['SCHEMA'] || "#{RAILS_ROOT}/db/schema.rb", "w") do |file|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
end
end
Es kann auf der Leitung 242 von lib/Aufgaben/Datenbank. Rechen in den Schienen 2.2.2 gem. Wenn Sie eine andere Version von Rails haben, suchen Sie einfach nach "namespace :schema
".
Wahrscheinlich wollen Sie eigentlich die Quelle der ActiveRecord::SchemaDumper
, aber ich denke, Sie sollten keine Schwierigkeiten haben herauszufinden, wo das ist. :-)
Ziemlich genial finden. – Tilendor
Nur zur Info: Sie müssen sicherstellen, dass Rake geladen ist, bevor Sie diese Methode verwenden. Wenn nicht, machen Sie einfach einen "Require 'Rake". –
viel verpflichtet, Art Sir! – mrstif