🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

1回答

1083閲覧

herokuでrailsアプリのデプロイがうまくいかない

suparutan

総合スコア11

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/11/29 08:27

編集2020/11/29 09:42

ruby on rails で作成したアプリをheroくでデプロイしようとしていますが、

We're sorry, but something went wrong.

というエラーになります。

heroku logs で遡ると、このようなログが出てきました。

fatalの部分がエラー原因とはわかるのですが、この場合何を修正していけば良いのかがわかりません。

丸投げのような質問で申し訳ございませんが、どなたか糸口をいただけますとありがたいです。

追記:コントローラー、モデル、ビューを追加しました。
非常に簡単なアプリとなっています。

2020-11-29T06:24:39.025330+00:00 app[web.1]: F, [2020-11-29T06:24:39.025246 #4] FATAL -- : [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 2020-11-29T06:24:39.025384+00:00 app[web.1]: F, [2020-11-29T06:24:39.025314 #4] FATAL -- : [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] ActionView::Template::Error (PG::UndefinedTable: ERROR: relation "posts" does not exist 2020-11-29T06:24:39.025384+00:00 app[web.1]: LINE 1: SELECT "posts".* FROM "posts" 2020-11-29T06:24:39.025385+00:00 app[web.1]: ^ 2020-11-29T06:24:39.025385+00:00 app[web.1]: : SELECT "posts".* FROM "posts"): 2020-11-29T06:24:39.025579+00:00 app[web.1]: F, [2020-11-29T06:24:39.025462 #4] FATAL -- : [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 1: .header 2020-11-29T06:24:39.025579+00:00 app[web.1]: [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 2: - @posts.each do |post| 2020-11-29T06:24:39.025580+00:00 app[web.1]: [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 3: .header_erb 2020-11-29T06:24:39.025580+00:00 app[web.1]: [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 4: .header_erb_date 2020-11-29T06:24:39.025581+00:00 app[web.1]: [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 5: 投稿日時: 2020-11-29T06:24:39.025581+00:00 app[web.1]: F, [2020-11-29T06:24:39.025522 #4] FATAL -- : [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] 2020-11-29T06:24:39.025642+00:00 app[web.1]: F, [2020-11-29T06:24:39.025583 #4] FATAL -- : [7ed3aa3a-9046-49ce-86cc-dc16ea523e3a] app/views/posts/index.html.haml:2:in `_app_views_posts_index_html_haml__144850466977042014_47010702711660'
class PostsController < ApplicationController def index @posts=Post.all end end
class Post < ApplicationRecord end
.header - @posts.each do |post| .header_erb .header_erb_date 投稿日時: =post.created_at .header_erb_name 名前: =post.name .header_erb_name 内容: =post.message

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

no1knows

2020/11/29 09:38

少なくとも該当するコントローラー、モデル、Viewを追記したほうが回答がつきやすいかと思います。
suparutan

2020/11/29 09:42

ありがとうございます!修正いたしました!
guest

回答1

0

PG::UndefinedTable: ERROR: relation "posts" does not exist

ということなので、マイグレーションファイルの作り方自体に問題があるかもしれません。

通常、マイグレーションファイルは一度作成したら、変更しないのが原則となります。
もし同じテーブルにカラムなどを追加・削除といった変更をする場合は、新しいマイグレーションファイルを作成する流れになります。


そもそも、既存のマイグレーションを直接変更するのは一般的によくありません。既存のマイグレーションを変更すると、自分どころか共同作業者にまで余分な作業を強いることになります。さらに、既存のマイグレーションが本番環境で実行中の場合、ひどい頭痛の種になるでしょう。既存のマイグレーションを直接修正するのではなく、そのためのマイグレーションを新たに作成してそれを実行するのが正しい方法です。これまでコミットされてない (より一般的に言えば、これまでdevelopment環境以外に展開されたことのない) マイグレーションを新たに生成し、それを編集するのが害の少ない方法であると言えます。

参考:Railsガイド


ー解決策ー

  1. マイグレーションファイルを作り直す
  2. HerokuのDBを消去してよければ、初期化後、db:migrationを再度実行する

といった方法でアプローチすることになるのではないかと思います。

投稿2020/11/29 22:31

編集2020/11/29 22:32
no1knows

総合スコア3365

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問