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は大変そう。。