LoginSignup
1
1

More than 3 years have passed since last update.

【Heroku】本番環境で"We're sorry, but something went wrong."エラー

Posted at

エラー内容

フリマアプリをHerokuにアップし、商品を出品しようとしたところ、エラー発生。

デプロイエラー.png

エラーが起こった環境設定の状況

  • macOS Catalina バージョン10.15.7
  • Rails Rails 6.0.3.4
  • Herokuを使ってデプロイ

解決したコマンド(結論)

Herokuの大元を再起動したら直った!

f.〇〇@〇〇noMacBook-Air furima-29074 % heroku restart

エラーを特定して解決までの流れ(詳細)

特定のため、まずは確認!

 (1)ローカル環境では、同じ出品作業ができるか?

結果:出品できた。(左上のテスト画像)
37adc23e79c4975967ca62df70354a54.png

 (2)データベースが反映されているか?

結果:最新だった。

f.〇〇@〇〇noMacBook-Air furima-29074 % heroku run rails db:migrate:status
(省略)
   up     20201121005023  Devise create users
   up     20201123065101  Create items
   up     20201123075851  Create active storage tablesactive storage
   up     20201204112402  Create orders
   up     20201204112701  Create payments
(省略)

 (3)masterは最新?コミットされているか?

結果:最新だった。

f.〇〇@e〇〇noMacBook-Air furima-29074 % git push heroku master            
Everything up-to-date

ログを確認しよう!

f.〇〇@〇〇noMacBook-Air furima-29074 % heroku logs

25b69b132d593eb8f832c8fcefb0bf14.png

その中に、
undefined method ’prefecture_id'
Did you mean? prefecture
prefectureは定義されてないよ?ここおかしいのでは?とメッセージ。

思い当たる節

(私の状況では)itemsテーブルpaymentsテーブルにおいて共通のActive Hashを使用。
初めのデータベース設計時点では、共通で使用できることに気づいておらず、後から共通のカラム名に変更した経緯があった。(変更後のカラム名が、prefecture_id)

この状況から仮説を立てよう!

仮説1:データベース(カラム名)が本番環境にうまく反映していないのでは?

データベースをリセット。
結果:もう一度ログを確認するも改善せず。

f.○○@○○noMacBook-Air furima-29074 % heroku run RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:migrate:reset

仮説2:内容は合っているのに、エラーが出ることから、ただのバグ?

Herokuを再起動。(当初の、結論のコマンド)
結果:直った!!🎉

f.〇〇@〇〇noMacBook-Air furima-29074 % heroku restart

学びになったこと(理解が浅かったこと)

  • パソコンと同じように、Herokuの大元自体を再起動することによって直ることがあることを知った。
  • log/development.logや、log/test.logはあくまで開発・テスト環境のログであって、本番環境のログはターミナルから確認することを理解した。
  • Sequel ProのようなUIで見るようにするにはSSHを入れないと知った。ただ、基本はターミナルということで、もっとコマンドの引き出しを広げたい(必要に応じて使えるようになりたい)と思った。

以上です。
同じように困った人の解決になれば幸いです。
(間違いあった時は、教えてください!)
 

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1