🗂
「ActionView::Template::Error (PG::UndefinedTable: ERROR: relation」の対処
背景
Railsチュートリアルの「2.3.1 マイクロポストを探検する」にて、Micropostsを生成した後、"rails db:migrate
"を実行した。
ローカル環境ではwebアプリケーションの確認ができるが、herokuでは「We're sorry, but something went wrong.
」というエラーメッセージが表示され、webアプリケーションを確認することができない。
原因
"heroku logs
"で確認すると、以下のようなエラーメッセージが出力されていた。
2021-01-05T01:31:02.867965+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "users" does not exist
2021-01-05T01:31:02.867966+00:00 app[web.1]: LINE 1: SELECT "users".* FROM "users"
2021-01-05T01:31:02.867966+00:00 app[web.1]: ^
2021-01-05T01:31:02.867967+00:00 app[web.1]: ):
2021-01-05T01:31:02.867968+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 12: </thead>
2021-01-05T01:31:02.867968+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 13:
2021-01-05T01:31:02.867968+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 14: <tbody>
2021-01-05T01:31:02.867969+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 15: <% @users.each do |user| %>
2021-01-05T01:31:02.867969+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 16: <tr>
2021-01-05T01:31:02.867970+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 17: <td><%= user.name %></td>
2021-01-05T01:31:02.867970+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] 18: <td><%= user.email %></td>
2021-01-05T01:31:02.867970+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11]
2021-01-05T01:31:02.867971+00:00 app[web.1]: [96fa1d20-cec6-4372-a2ae-f4f39cba1d11] app/views/users/index.html.erb:15
usersテーブルがないと言われている。
rails db:migrate
はローカル環境のみのマイグレーションだったので、heroku環境ではDBマイグレーションができていないかった。
対処法
"heroku run rails db:migrate
"heroku環境でもDBマイグレーションを行う。
masa@DESKTOP-0CNPS43:~/RailsTutorial$ heroku run rake db:migrate
Running rake db:migrate on ⬢ masa-rails-tutorial-20210104... up, run.7109 (Free)
W, [2021-01-05T01:33:45.929717 #4] WARN -- sentry: ** [Raven] You are running on Heroku but haven't enabled Dyno Metadata. For Sentry's release detection to work correctly, please run `heroku labs:enable runtime-dyno-metadata`
I, [2021-01-05T01:33:46.031043 #4] INFO -- : Raven 3.1.1 configured not to capture errors: DSN not set
I, [2021-01-05T01:33:48.160471 #4] INFO -- : Migrating to CreateUsers (20210104060552)
== 20210104060552 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0190s
== 20210104060552 CreateUsers: migrated (0.0196s) =============================
I, [2021-01-05T01:33:48.205690 #4] INFO -- : Migrating to CreateMicroposts (20210105003609)
== 20210105003609 CreateMicroposts: migrating =================================
-- create_table(:microposts)
-> 0.0134s
== 20210105003609 CreateMicroposts: migrated (0.0140s) ========================
これで無事、herokuでもアプリケーションを確認することができました。
Discussion