Подтвердить что ты не робот

Ошибка Heroku Postgres: PGError: ERROR: отношения "организации" не существуют (ActiveRecord:: StatementInvalid)

У меня возникла проблема с развертыванием моего приложения Rails в Heroku, где эта ошибка возникает при попытке получить доступ к приложению:

PGError: ERROR: отношения "организации" не существуют (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 в течение года в других приложениях и не вижу ничего подобного. Конечно, все работает на локальном SQLite.

4b9b3361

Ответ 1

У меня была та же проблема. Чтобы решить эту проблему, сбросить базу данных проще.

  • heroku rake db: reset ('heroku run rake db: reset', если вы на кедре)
  • heroku rake db: migrate ('heroku run rake db: migrate', если вы на кедре)

Затем миграция была успешно выполнена для моего случая:)

Хотя это хорошее решение в этом контексте, не делайте этого при производстве. Он удалит все записи из вашей базы данных

Ответ 2

В соответствии с моим опытом (Rails 3.1, Sedar stack) после запуска pg:reset и db:migrate вам может потребоваться запустить heroku restart.

Ответ 3

У меня была такая же проблема, пока я не понял, что мне нужно делать:

heroku rake db:migrate

:)

Ответ 4

Моя версия героя:

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

Ответ 5

В моем случае я также должен был уничтожить и воссоздать свое приложение. Я запустил rake db: migrate с файлом миграции, который не был зафиксирован, и по какой-то причине pg: reset не работал.

Ответ 7

Видимо, удаление всего моего приложения, а затем повторное развертывание с нуля исправило его. Я понятия не имею, в чем проблема.

Ответ 8

В моем случае симптомы были одинаковыми, но первопричина и лекарство оказались несколько разными. Потрачено на это. Надеюсь, этот пост спасет кого-то еще в те часы! Я использую:

Все работает нормально на SQLite, но получает ту же ошибку PG на Heroku. Оказывается, что ActiveScaffold каким-то образом препятствует успешному выполнению задач рейка Heroku из-за ошибки, аналогичной предыдущей. Таким образом, вы получаете кеш 22, где вы получаете ту же ошибку, если пытаетесь запустить heroku rake db: migrate или подобное.

Теперь исправление:

  • Комментируйте блоки кода, похожие на следующие из всех контроллеров, которые используют "active_scaffold":

    active_scaffold :<model_name> do |conf|
    end
    
  • Commit, push to heroku
  • heroku run rake db:migrate
  • Убедитесь, что все в порядке, запустив heroku run rails console, а затем произнесите создание модели и сохраните ее.
  • Теперь верните изменения (т.е. верните блок active_scaffold выше)
  • commit, push to heroku
  • Вы находитесь в бизнесе!

Ответ 9

Я поддерживаю локальную настройку как можно ближе к производству, включая использование базы данных postgresql, поэтому у меня была эта проблема на моей локальной машине. В любом случае я не могу удалить свою производственную базу. Оказалось, что мой вопрос был только в тесте, поэтому я использовал: rake db: test: подготовьтесь к его исправлению.

Ответ 10

rake db:drop
rake db:create
rake db:migrate

Ответ 11

После нескольких часов просеивания через ответ я понял, что когда вы укажете

rails new MYAPP -database POSTGRESQL

он изменяет файл .gitignore, игнорируя весь /db/ directory, поэтому моя база данных никогда не подталкивалась к героку. Удалите его с осторожностью или, по крайней мере, не введите свое имя пользователя и пароль там, где вы нажимаете.

Ответ 12

У меня была аналогичная проблема, и я решил heroku run rake db:reset и heroku run rake db:migrate устранить проблему. Я думаю, что я просто не выполнял правильные миграции, чтобы исправить эту проблему.

Ответ 13

Могут быть много причин для этой ошибки. Однако для моего приложения проблема заключалась в том, что я не выходил из приложения, прежде чем запускал миграцию (?). Итак, перейдем к этому пути:  http://name_of_my_app.herokuapp.com/logout исправил проблему для меня.