以下の内容はhttps://kamatimaru.hatenablog.com/entry/2025/11/03/100445より取得しました。


Railsでローカルでは動作するコードがHerokuデプロイ後にエラーになる場合はHerokuを再起動するとなおる場合がある

結論

Railsでローカルでは動作するコードがHerokuデプロイ後にエラーになる場合は、以下のコマンドでHeokruを再起動すると解消する場合がある。

heroku restart

事象

RailsでのWEBアプリを開発で以下の改修をした。

  1. TagモデルにTagGroupモデルへの関連を追加する
  2. 管理画面でタグを作成する際に、タググループを付与できるようにする

すると、2.の動作確認中にローカルでは正常に動作していたコードがHeroku上ではエラーになるという事象が発生した。

エラーメッセージ

ActiveModel::UnknownAttributeError (unknown attribute 'tag_group_id' for Tag.)

解決方法

まずはheroku run rails db:migrate:statusマイグレーションの適用状況がローカルと同じになっているか確認したが問題なかった。

次に以下のコマンドでtagsテーブルのスキーマを確認したがtag_group_idも存在しており問題なさそうだった。

heroku run rails console
> ActiveRecord::Base.connection.columns(:tags).map(&:name)
=> ["id", "created_at", "name", "position", "updated_at", "tag_group_id"]

ChatGPTに聞いたら「高確率で「デプロイ後のアプリコードが古い/再起動が反映されていない」状態です。つまり Heroku の dyno(Rails プロセス)が古いアプリコードをキャッシュしたまま動いている 状況が考えられます。」とのことだった。

heroku restartで再起動することを勧められたので、やってみたらその通りで解消した。




以上の内容はhttps://kamatimaru.hatenablog.com/entry/2025/11/03/100445より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14