Find Where a Rake Task is Defined
May 1, 2018
In any Rails application you can see which rake tasks are available - either by running rake -AT (or rake --all --tasks) to see all tasks, or rake -T (or rake --tasks) to see all tasks with descriptions.
However, today I learnt you can also see where a rake task is defined by running rake -W (or rake --where). This is useful if a gem is adding a rake task and you want to look at the source.
All of these commands also take an optional pattern to filter the results.
rake -W db:schema:load
rake db:schema:load /Users/jacopretorius/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.6/lib/active_record/railties/databases.rake:247
rake db:schema:load_if_ruby /Users/jacopretorius/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.6/lib/active_record/railties/databases.rake:251