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