Desafortunadamente, no hay una forma programática de hacerlo. Las tareas de Rake se pueden cargar desde los rieles en sí, lib/tasks o desde cualquier complemento con un directorio de tareas.
Esto debería atrapar a la mayoría de todo no dentro de Rails mismo:
find . -name "*.rake" | xargs grep "whatever"
En cuanto a db:schema:dump
, aquí está la fuente:
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
Se puede encontrar en la línea 242 del lib/tareas/base de datos. rastrillar en los carriles 2.2.2 gema. Si tiene una versión diferente de Rails, simplemente busque "namespace :schema
".
Es probable que realmente desee la fuente del ActiveRecord::SchemaDumper
, pero creo que no debería tener problemas para averiguar dónde está. :-)
Bastante increíble encontrar. – Tilendor
Solo para tu información: debes asegurarte de que el rastrillo esté cargado antes de utilizar este método. si no es así, simplemente haz un "requiera" de rake '". –
muy agradecido, amable señor! – mrstif