そのため、開発プロセスのある時点で、users テーブルに列を追加するための移行を追加しました。この列には「ドル」属性が追加されました。その後、remove migration を記述して "dollars" 属性を削除することにしました。後で誤って最初の移行を削除してドルを追加したため、ローカルの SQLite データベースで db:migrate を実行したときに発生したエラーを解決するために、RemoveDollarsFromUsers
移行も削除しました。
私がherokuにデプロイするまで、問題は解決していたようです。でデータベースをリセットした後、実行するとheroku pg:reset DATABASE
、heroku run rake db:migrate
「ドル」はユーザーの属性ではないというエラーが表示されました。ログ ファイルは、以前に削除した RemoveDollarsFromUsers 移行を実行しようとしたことを示していました。
そのため、レポが最新であることを再確認し、heroku が古い移行を覚えているのではないかと考えて、heroku で完全にリセットして新しいアプリを起動しようとしました。プッシュしているレポには古い移行ファイルへの参照がまったくないはずですが、新しいherokuアプリでは同じエラーが発生しました。
これはgitの問題ですか?私が考えることができる唯一のことは、gitがRemoveDollarsFromUsers移行で古いバージョンをプッシュしていることです。そうでなければ、herokuはどうすればそれについて知ることができますか?