質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.33%

  • Ruby on Rails

    7680questions

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

  • PostgreSQL

    1143questions

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

rails postgresのエラーでPG::UndefinedTable: ERROR: relation "sessions"does not existで困っている。

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 228

lulu

score 7

rails歴半年のものです。
ある日、masterをpullしたら、localhost:3000に以下のエラーが出るようになりました。
同僚のmacでは動いており、私のmacだけ動きません。私のpostgresに問題があるようです。
postgresは10.4です。

postgresは10.4を使っており、extencionとしてpostgisを使っています。
何か心当たりなどありますでしょうか?
rails db:migrate/rails db:drop/ postgresの再インストールは試しました。
助けてください

Processing by StaticPagesController#home as HTML
Rendering 500 with exception: PG::UndefinedTable: ERROR:  relation "sessions"does not exist
LINE 8:                WHERE a.attrelid = '"sessions"'::regclass
                                          ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
                     c.collname, col_description(a.attrelid, a.attnum) AS comment
                FROM pg_attribute a
                LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum= d.adnum
                LEFT JOIN pg_type t ON a.atttypid = t.oid
                LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
               WHERE a.attrelid = '"sessions"'::regclass
                 AND a.attnum > 0 AND NOT a.attisdropped
               ORDER BY a.attnum

Completed 500 Internal Server Error in 7ms (ActiveRecord: 1.2ms)
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mts10806

    2018/07/19 15:43

    質問は編集できるので指摘や追記依頼には適宜対応していただけると助かります。

    キャンセル

  • sazi

    2018/07/19 15:44

    発行されるSQLも同じならエラーにならないはずなので、ソースに差があるんじゃないですか。

    キャンセル

  • lulu

    2018/07/19 15:51

    ソースには全く差がないのですが、postgresのユーザーなど、postgresの中身が違います。

    キャンセル

回答 2

0

Google検索トップです。
調べましたか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 14:58 編集

    あああ、ありがとうございます。
    でもこの方法だとうまくいきません。
    SETは成功するのですが、
    SHOW search_pathを行うと、SETする前の値が帰ってきます。

    キャンセル

  • 2018/07/20 11:27

    sessionsが存在しないと出るのですが、posticoでpostgresのテーブル一覧を見てもsessionが存在していません。なので、上記の方法だとうまくいかないことに気がつきました。

    キャンセル

  • 2018/07/20 11:47

    sessionテーブルが存在しないのに上記ではsessionテーブルを要求しているためエラーを発しているように見えます。下のsaziさんの回答が的を射ているように思えるのですが...。

    キャンセル

  • 2018/07/20 11:49

    StaticPagesControllerの記述に間違いはないですか?
    (そこに原因があるかはわからないですが...)

    キャンセル

  • 2018/07/20 11:55

    どのページにアクセスしてどの処理の段階でエラーが起きているのか調べれば原因も見えてくると思います。
    その辺の詳しい状況がわからないのでこれ以上アドバイスのしようがないです。
    byebugなどで大まかな場所だけでも調べてみては?

    キャンセル

0

以下がエラーとなっているSQLですね。

SELECT a.attname, format_type(a.atttypid, a.atttypmod),
       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
       c.collname, col_description(a.attrelid, a.attnum) AS comment
FROM pg_attribute a
     LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum= d.adnum
     LEFT JOIN pg_type t ON a.atttypid = t.oid
     LEFT JOIN pg_collation c ON a.attcollation=c.oid AND a.attcollation <> t.typcollation
WHERE a.attrelid = '"sessions"'::regclass
  AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum


上記の

WHERE a.attrelid = '"sessions"'::regclass


部分でエラーになっています。
sessionsというテーブルが無いってエラーです。
postgresでは"で括ると、それはテーブル名や項目名を意味します。
値が条件なら

WHERE a.attrelid = 'sessions'::regclass


じゃないでしょうか。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/19 15:23

    丁寧な回答ありがとうございます。
    Rails側では具体的にどうしたら良いでしょうか?

    キャンセル

  • 2018/07/19 15:42

    sessionsという値を設定している箇所で、"で括られたものを設定しているんじゃないでしょうか。

    キャンセル

  • 2018/07/19 15:49

    deviseの問題かなと思うのですが、railsのどの場所が悪いのかがわからないです。
    例えばdeviceならどこのファイルをいじるなどわからないでしょうか。
    かなり困っています。お願いいたします。

    キャンセル

  • 2018/07/19 16:05

    "sessions"でgrepするなどすれば見つかりませんか?

    キャンセル

  • 2018/07/19 16:12 編集

    すみません。基礎的なことがわからなくて、vscodeで検索してもコードには特にsessionsを"で定義している箇所はないのですが、
    何らかのコマンドとgrepを組み合わせると、不具合の箇所がわかるのでしょうか?

    キャンセル

  • 2018/07/19 18:32

    ソースも同じなら、動作している環境のDBのバックアップを取ってリストアすれば同じになりそうですが。
    どこに原因があるかの特定は正直分かりません。

    キャンセル

同じタグがついた質問を見る

  • Ruby on Rails

    7680questions

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

  • PostgreSQL

    1143questions

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