migrateタスクがどうやって実行されてるのか見る

migrateタスク

  task :migrate => :environment do
    ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
    Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
  end

依存タスクはenvironmentタスクでこれはRAILS_ROOT/config/environment.rbをrequireしてる。
ENV["VERSION"]は

#rake db:migrate VERSION=5

とかやるときのやつでrakeの中でENVに設定される。
ActiveRecord::Migrator#migrateは大変そう。。