発生している問題・エラーメッセージ
railsでのアプリ作成中にherokuへデプロイして本番環境で動作確認をしているとpostテーブルが使用されているページ(posts/index.erb もしくは posts/new.erb)で
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.
と表示されました。
トップページや他のページ、テーブルが使用されているページは問題なく動作します。
開発環境では全ページ問題なく動作します。
以下のエラー文より、postテーブルに原因があると考えましたが、それ以上のことが全くわかりません。
記述自体にsqlite3では動作してpgでは動作しない原因があるのでしょうか。
該当のソースコード
schema.rb
1schema.rb 2create_table "posts", force: :cascade do |t| 3 t.string "name" 4 t.string "local" 5 t.string "genre" 6 t.text "content" 7 t.boolean "state" 8 t.integer "user_id" 9 t.datetime "created_at", null: false 10 t.datetime "updated_at", null: false 11 t.index ["user_id"], name: "index_posts_on_user_id" 12 end
heroku
1heroku logs 2F, [2020-03-15T14:52:44.947501 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 32020-03-15T14:52:44.947604+00:00 app[web.1]: F, [2020-03-15T14:52:44.947557 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "posts" does not exist 42020-03-15T14:52:44.947604+00:00 app[web.1]: LINE 1: SELECT "posts".* FROM "posts" 52020-03-15T14:52:44.947605+00:00 app[web.1]: ^ 62020-03-15T14:52:44.947605+00:00 app[web.1]: : SELECT "posts".* FROM "posts"): 72020-03-15T14:52:44.947749+00:00 app[web.1]: F, [2020-03-15T14:52:44.947694 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 15: </thead> 82020-03-15T14:52:44.947749+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 16: 92020-03-15T14:52:44.947751+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 17: <tbody> 102020-03-15T14:52:44.947752+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 18: <% @posts.each do |post| %> 112020-03-15T14:52:44.947752+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 19: <tr> 122020-03-15T14:52:44.947753+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 20: <td><%= post.name %></td> 132020-03-15T14:52:44.947753+00:00 app[web.1]: [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 21: <td><%= post.local %></td> 142020-03-15T14:52:44.947796+00:00 app[web.1]: F, [2020-03-15T14:52:44.947748 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] 152020-03-15T14:52:44.947837+00:00 app[web.1]: F, [2020-03-15T14:52:44.947796 #4] FATAL -- : [fd22ef05-adc6-42c1-b693-59fb0df4d4fc] app/views/posts/index.html.erb:18:in `_app_views_posts_index_html_erb___377652420986337890_47078764072600'
app/views/posts/index.html
1app/views/posts/index.html 2<% @posts.each do |post| %> 3 <tr> 4 <td><%= post.name %></td> 5 <td><%= post.local %></td> 6 <td><%= post.genre %></td> 7 <td><%= post.content %></td> 8 <td><%= post.state %></td> 9 <td><%= link_to 'Show', "/posts/#{post.id}/responses/index" %></td> 10 <td><%= link_to 'Edit', edit_post_path(post) %></td> 11 <td><%= link_to 'Destroy', post, method: :delete, data: { confirm: 'Are you sure?' } %></td> 12 </tr> 13 <% end %>
試したこと
posts/index.erbよりDBを使用する部分を除くと動作することを確認
postの従属関係を除くも動作せず。
heroku run rails db:migrate、drop,createなども一通り試しました。
production.logを見るもエラーは見られず。
追記、気になった点
db/migrate内のpostテーブルのmigrationファイルが無くなっている。
heroku run rails db:migrate:status Status Migration ID Migration Name -------------------------------------------------- D, [2020-03-15T15:26:38.228536 #4] DEBUG -- : (2.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC up 20200312051405 Devise create users
rails db:dropを開発環境でしてみた結果postテーブルが消えたため、マイグレーションファイルが何かのタイミングで消えてしまったのが原因だったと思われる。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。