ActiveRecord PGError на Heroku не локально - PullRequest
1 голос
/ 04 января 2011

Я получаю ActiveRecord PGError на Heroku не локально.Сообщение об ошибке из журналов Heroku:

ActiveRecord :: StatementInvalid (PGError: ОШИБКА: столбец items.user_id не существует ЛИНИЯ 1: ВЫБРАТЬ "items". * FROM "items" WHERE ("items ".user_id = 4) ИЛИ

Этот код работает локально (SQLite), но не в Heroku (postgresql), поэтому я читал об этих различиях. Сначала я подумал, что это проблема из-за случаякак я понял, что это должно быть User_ID - но теперь я не уверен, что это что-то в «предметах», что не совсем правильно, и я не могу понять, что это такое.

Как я уже сказал, на моем локальном компьютере это работает абсолютно нормально, проблема возникает только на heroku и postgres.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 04 января 2011

Похоже, что в вашей базе данных нет столбца 'user_id' в таблице элементов. Это может быть связано с тем, что ваша миграция не была запущена недавно или, возможно, вы отредактировали существующую миграцию, а не сделали новую миграцию, чтобы добавить этот столбец.

Тебе небезразличны твои данные о героку на данный момент? Если нет, вы можете использовать Tap, чтобы взять все, что у вас есть в локальной базе данных, и установить базу данных Heroku в (виртуальную) синхронизированную копию. На локальном компьютере из каталога вашего проекта:

heroku db:push

Это уничтожит вашу базу данных heroku, так что используйте это с умом.

0 голосов
/ 19 января 2011

Попробуйте перезапустить приложение, используя следующую команду:

heroku restart
0 голосов
/ 05 января 2011

В конце концов, это была проблема с кейсом - postgres (я полагаю) преуменьшает все, прежде чем отправить его в базу данных - мой user_id фактически был вызван необъяснимым образом User_ID; после миграции все работает - спасибо тем, кто помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...