発生状況
ローカル環境で動作確認済みheroku run git up master
heroku run rails db:migrate
してもローカルと本番環境で同じ動作をしない。
エラー確認
FATAL周りに
ActiveModel::UnknownAttributeError (unknown attribute 'item_name' for Item.
status=500
有りのためどうやらDBまわりでのエラー
DBをUP/DOWNして書き換えたのが理由のよう。
修正内容
現状ローカル環境のマイグレートファイル、その他記述が間違っていないことを確認。% heroku run DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:drop db:create db:migrate
を(heroku上のDBをdrop,create,localと同じ状態にmigrate,全て行うコマンド)実行する。
で解決。
上記コマンドでエラーが出た際
データベースの作り替えするも、新データベースがファイルの中身が書き換えの結果
TABLEA=20220102(references :TABLEB...)
TABLEB=20220103
みたいになっていたら、TABLEA作成時にエラーが発生して作れない(まだ存在していないTABLEBを作れない)のでDBを一度削除
rails db:drop
ファイル名を書き換える。参照がないものから日付を若くする)
= 普通に右クリックしてファイル名を変更
TABLEB=20220101
TABLEA=20220102(references :TABLEB...)
その後(上記コマンドでエラーが出た際)
ローカルでの作業
migrateし直すだけrails db:migrate
herokuでの作業
% heroku run DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:drop db:create db:migrate
% heroku git up master
% heroku run rails db:migrate
で解決。
共同作業で間違って削除したら泣くので注意。