web-dev-qa-db-ja.com

Heroku Postgresエラー:PGError:エラー:リレーション "organizations"は存在しません(ActiveRecord :: StatementInvalid)

RailsアプリをHerokuにデプロイする際に問題が発生しています。アプリにアクセスしようとすると、このエラーがスローされます。

PGError:エラー:リレーション "organizations"は存在しません(ActiveRecord :: StatementInvalid)

SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"organizations"'::regclass
  AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum

誰にもアイデアはありますか?これは私にとって初めてのことです。特に、私は他のアプリでHerokuで1年間働いてきましたが、このようなものは見ていません。もちろん、すべてがローカルSQLiteで機能します。

43
Mark

同じ問題がありました。解決するには、データベースのリセットがより簡単です。

  • heroku rake db:reset(杉にいる場合は「heroku run rake db:reset」)
  • heroku rake db:migrate(ヒマラヤスギの場合は 'heroku run rake db:migrate')

その後、私の場合は移行が正常に完了しました:)

このコンテキストではこれは良い解決策ですが、実稼働環境では実行しないでください。データベースからすべてのレコードを削除します

80
akipponn

私の経験(Rails 3.1、Sedarスタック)によると、pg:resetおよびdb:migrate実行する必要があるかもしれませんheroku restart

19
a.b.d

私がやらなければならないことに気づくまで、私は同じ問題を抱えていました:

heroku rake db:migrate

:)

19
Victor S

私のherokuバージョン:

heroku --version
#=> heroku-gem/2.29.0 (x86_64-linux) Ruby/1.9.3

修正するには、ターミナルを開いて次を実行します。

heroku pg:reset DATABASE --confirm YOUR_APP_NAME
heroku run rake db:setup
heroku restart
heroku open
7
Flavio Wuensche

Deviseを使用していますか? 2.0にアップグレードするときにこの問題が発生しました-移行ファイルを手動で変更する必要があります。

https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style

1
Tim Fletcher

私の場合、アプリを破棄して再作成する必要もありました。移行ファイルをコミットせずにrake db:migrateを実行しましたが、何らかの理由でpg:resetが機能しませんでした。

1
user555298
rake db:drop
rake db:create
rake db:migrate
0
Connor Leech

どうやらアプリ全体を削除してからゼロから再デプロイすると、修正されました。何が問題なのか分かりません。

0
Mark

私の場合、症状は同じでしたが、根本原因と治療法はやや異なっていました。これに何時間も費やしました。この投稿が他の人の時間を節約することを願っています!私は使っている:

SQLiteではローカルですべて正常に実行されますが、Herokuでも同じPGエラーが発生します。 ActiveScaffoldは、上記と同様のエラーが原因で、Heroku Pushがレーキタスクを正常に実行できない原因となっていることがわかりました。そのため、heroku rake db:migrateなどを実行しようとすると、同じエラーが発生するキャッシュ22が取得されます。

今修正:

  • 「active_scaffold」を使用するコントローラーallコントローラーに似たコードブロックをコメントアウトします。

    active_scaffold :<model_name> do |conf|
    end
    
  • コミット、herokuへのプッシュ
  • heroku run rake db:migrate
  • heroku run Rails consoleを実行してすべてが正常であることを確認し、モデルを作成して保存すると言います。
  • 変更を元に戻します(つまり、上記のactive_scaffoldブロックを戻します)
  • コミット、herokuへのプッシュ
  • あなたは仕事中です!
0
paneer_tikka

何時間も答えをふるい分けた後、私はあなたが指定するとき

Rails new MYAPP -database POSTGRESQL

.gitignoreファイルが変更され、/db/ directory全体が無視されるため、データベースがherokuにプッシュされませんでした。慎重に削除するか、少なくともプッシュアップする場所にユーザー名とパスワードを入力しないでください。

0
dominathan

Postgresqlデータベースを使用するなど、ローカルのセットアップをできる限り実稼働に近づけるため、ローカルマシンでこの問題が発生しました。とにかく運用データベースを削除することはできません。問題はテストのみであることが判明したため、rake db:test:prepareを使用して修正しました。

0
Greg Silcox

同様の問題が発生し、heroku run rake db:resetおよびheroku run rake db:migrate問題を修正します。問題を修正するための適切な移行を実行していなかったのではないでしょうか。

0
gr1zzly be4r

このエラーには多くの理由があります。ただし、私のアプリの問題は、移行を実行する前にアプリからログアウトしていなかったことです(?)。次のパスに移動します:http://name_of_my_app.herokuapp.com/logout私のために問題を修正しました。

0
Dave Sloan