2016-07-19 8 views
0

私は、電話番号のためにTwitterを掻き集めるRailsでアプリを構築しました。それはヒロクの上にあり、アプリを使用しているさまざまなゲストのモデルを追加するまでうまくいきました。今すぐdb:migrate、db:reset、db:createを試みると、 "ActiveRecord :: StatementInvalid:PG :: UndefinedTable:ERROR:relation"ゲスト "が存在しません"というエラーが表示されます。私はこのトピックのすべてのスタックオーバーフローの記事を読んだが、すべてのソリューションは、私がエラーを取得せずに実行することはできませんコマンドを使用しています。HerarのRailsアプリでBizarre PG :: UndefinedTableエラーが発生しました

プログラムのすべてがローカルで素晴らしい仕事をしました。私はデータベースに移行し、必要に応じて削除して再作成し、アプリケーションを完全な機能に使用することができます。問題は、PostgreSQL Herokuデータベースに移行することでした。私は何の誤りもなくHerokuにプッシュしたが、オンラインでアプリを実行しようとすると、データベースにアクセスできないと私に言った。データベースの変更をHerokuに移行するために行ったところ、エラーが発生しました。 Herokuデータベースをリセットしてもう一度移行しようとしましたが、移行時に同じエラーが発生しました。

ゲストは、アプリにログインしたときに作成したモデルです。ユーザーはツイッターアカウントで、ゲストはスクレーパーでログインしたユーザーです。ユーザーは "has_many" "belongs_to"関係でゲストに属します。

また、herokuでエラーが発生した後、ローカルデータベースに移行しようとするとエラーが発生します。私が言ったように、私はdb:reset、db:create、またはdb:ローカルにそれ以上移行することはできません。私はdb:dropだけすることができます。

私はプロダクションでもローカルでもpostgresを使用します。私のテーブルはすべて見栄えが良い。マイグレーションファイルのタイムスタンプをチェックして、最初にゲストを作成してユーザーを作成しようとしました。ここに私のschema fileのスクリーンショットがあります。

これは私のerror messageのスクリーンショットです。

ご協力いただきありがとうございます。私は1週間これに固執しています。

+0

エラーが発生するスタックトレースはありますか?アプリケーションが 'db:migrate'を実行するように設定している間、何かのような音が' Guest'をインスタンス化したり 'Guest'クラス構造を検索しようとしています。 –

+0

正確にスタックトレースとは何ですか?そして私はそれをどのように見つけますか? –

+0

例外は、例外をトリガしたパスを表示できるように、メソッド呼び出しのリストが付いている必要があります。これは、ログまたは標準エラー出力に格納する必要があります。 –

答えて

1

私はそれを出しました

ありがとう、トンは短すぎます。私は私のイニシャライザファイルで私のゲストクラスを参照していたことが私の問題だと思う。私はそのコードをコントローラメソッドに移しました。これはヒロクにプッシュされ、すべてがうまくいきました。

+0

右。 'Guest.where(...) 'を実行しようとすると、ARはデータベースに' Guest'がどのように見えるかを問い合わせます。スタックトレースで見た面白い ':: regclass'クエリです。しかし、データベースに 'guests'テーブルがない(つまり、マイグレーションがまだ実行されていない)場合、' '" guests ":: regclass'型キャストは失敗し、' PG :: UndefinedTable'エラー。イニシャライザはデータベースを参照すべきではありません。そうすることで、これらの依存ループが発生します。 –

0

あなたのpostgresユーザのdoesntのは、あなたがPGを使用する必要があり、データベースを作成またはドロップする権限を持っている:

heroku pg:reset DATABASE_URL 

Thisをリセットし、私は、その後、それは私のために働いていたものです。

+0

私はこれを試して、それは私のために何も変わらない –

関連する問題