Hartl の Rails チュートリアル (第 2 版) の第 9 章の終わりで、rake タスクを使用してデータベースにデータを入力するときにエラーが発生しました。最終的には解決しましたが、何が悪かったのかわかりません。他の誰かがこのエラーに遭遇した場合に備えて、これが私がしたことです。何が問題なのか知っている人がいたら、コメントしてください -- 知りたいです。ありがとう!
これらのコマンドを実行しました
$ git push heroku
$ heroku run rake db:migrate
$ heroku pg:reset SHARED_DATABASE --confirm <name-heroku-gave-to-your-app>
$ heroku run rake db:populate
次に、このエラーが発生しました:
rake aborted!
PGError: ERROR: relation "users" does not exist
: 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 = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Tasks: TOP => db:populate
(See full trace by running task with --trace)
何が間違っていたのか理解できませんでした。次に、この投稿に出くわしました: Heroku Postgres Error: PGError: ERROR: relationship "organizations" does not exist (ActiveRecord::StatementInvalid)
そこから、次のコマンドを実行しました。
heroku run rake db:reset
heroku run rake db:migrate
heroku run rake db:populate
これでアプリが動作します。SHARED_DATABASE をリセットするときになぜそのエラーが発生したのか、まだはっきりしていません...誰かが知っているなら、知りたいです。