Purtroppo non esiste un metodo programmatico per farlo. Le attività di Rake possono essere caricate da rails, lib/tasks o da qualsiasi plugin con una directory di attività.
Questo dovrebbe agguantare la maggior parte tutto non all'interno Rails stesso:
find . -name "*.rake" | xargs grep "whatever"
Per quanto riguarda db:schema:dump
, ecco la fonte:
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
Si può trovare on line 242 del lib/task/database. rastrellare le rotaie 2.2.2 gemma. Se hai una versione diversa di Rails, cerca "namespace :schema
".
Probabilmente si desidera la sorgente dello ActiveRecord::SchemaDumper
, ma penso che non dovresti avere problemi a capire dove sia. :-)
fonte
2009-05-06 17:58:28
Scoperta abbastanza impressionante. – Tilendor
Solo per FYI: devi assicurarti che il rake sia caricato prima di usare questo metodo. se non lo è, fai semplicemente una "richiesta" di rake "". –
molto obbligato, gentile signore! – mrstif