※初学者向けです。
herokuにpushしたはずのページが表示されず、We're sorry, but something went wrong
と表示されて困った時の対処法をメモ。
結論
ターミナルで下記を実行すればOKです。
$ heroku run rails db:migrate
※他の原因もあるかもしれませんが、初学者が陥りがちなパターンについて書いています。
経緯
herokuにpushして、Webページをチェックしようとしたところ、下記の画面になりました(汗)
開発環境ではうまくいっていたのになぜ!?
Something went wrongって...何がwrongやねん!
という気持ちを抑えつつ、原因を調べてみると、
「本番データベースのマイグレーションを行なっていなかったこと」
が原因だと分かりました。
開発環境ではマイグレーションファイルをrails db:migrate
していたのですが、
これを本番環境でもやらないといけなかったのですね。
(そうしないと、「マイグレーションファイル」=「データベースさんへのお願い事項」の記述だけあるものの、実際にお願いをしていない状態になってしまう)
したがって、結論でも書いたように、herokuコマンドを使ってターミナルで下記を実行します。
$ heroku run rails db:migrate
すると、無事herokuのWebアプリケーションが動作し、ページが表示できます!
※ちなみに、herokuの本番環境で起きているエラーの原因を知りたい時には、
ターミナルでheroku logs
を実行すると直近のherokuのログ情報を参照できます。
まとめ
新規、あるいは更新したマイグレーションファイルがある場合、
heroku push
を行なった後にheroku run rails db:migrate
もしっかり行うこと。