Heroku Postgres Ошибка: PGError: ОШИБКА: отношение "организации" не существует (ActiveRecord :: StatementInvalid) - PullRequest
43 голосов
/ 27 марта 2011

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

PGError: ОШИБКА: отношение "организации" не существует (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.

Ответы [ 13 ]

0 голосов
/ 24 октября 2012

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

0 голосов
/ 13 апреля 2012

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

Все работает локальнона SQLite, но получить ту же ошибку PG на Heroku.Оказывается, ActiveScaffold каким-то образом мешает Heroku push успешно запускать грабли из-за ошибки, аналогичной приведенной выше.Таким образом, вы получите кэш 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 выше)
  • коммит, толкни к героку
  • ты в деле!
0 голосов
/ 27 марта 2011

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

...