Rails docによると:http : //guides.rubyonrails.org/migrations.html
「アクティブレコードは、どのマイグレーションがすでに実行されているかを追跡するため、ソースを更新してrake db:migrateを実行するだけです。」
ActiveRecordは実際にどのようにこれを行いますか?Active Recordはどこにデータを保存しますか?
これはデータベース自体に格納されているのではないでしょうか?どこかのテーブルに。
私の開発マシンでは、すべての移行を実行しました。次に、mysqldumpを使用して本番データベースをコピーしました。次に、「rake db:migrate:status」を実行したところ、本番データベースで実行する必要がある移行が正しく表示されます。
私は以前、ActiveRecordがタイムスタンプを使用して最後の移行実行を追跡していると思っていました。しかし、ActiveRecordは別のコードブランチからマージされた「古い」移行を正しく実行するため、これは正しくないと思います。
この手の込んだ知識を持つ誰かができますか?ありがとう