HEROKU AND Ruby на рельсах: база данных проблем - PullRequest
0 голосов
/ 06 марта 2020

Я новичок в разработке ruby и у меня возникла проблема с базой данных при развертывании проекта на heroku

Я использовал postgresql в качестве базы данных. Test создал запись в базе данных, используя поле name: string. Затем я выполнил миграцию и решил проверить производительность локально.

<h1><%= @name.name %></h1>

Локально база данных работает правильно. Но при развертывании этого проекта на heroku, он дает следующую картинку.

введите описание изображения здесь

Журналы:

введите описание изображения здесь

База данных по героку после миграции введите описание изображения здесь

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Из вашего скриншота журнала я вижу, что ошибка ActiveRecord::RecordNotFound (Couldn't find User with id=2).

Я уверен, что вы загружаете что-то вроде User.find(2) в WelcomeController#show.

Просто убедитесь, что User#2 существует или загружаете другого существующего пользователя. Если это не решит вашу проблему, пожалуйста, дайте мне знать. Удачи вам в изучении Rails.

0 голосов
/ 06 марта 2020

Как сказано выше, проблема в том, что ваша запись не существует в производстве. Если вы добавили его локально, это нормально, то есть не было добавлено при нажатии на Heroku, так как база данных сбрасывается.

Есть много способов исправить вашу проблему, вот два:

Вы можете использовать начальный файл в папке db/seeds, в которую вы добавили User.create!(id: 2) и запустить:

heroku run rails db:seed -a name_of_your_app

Или вы можете запустить консоль рельсов, с которой вы User.create!(id: 2) из Heroku вручную создайте этого пропавшего пользователя:

heroku run rails c -a name_of_your_app

Вы также должны научиться читать ошибки, которые печатаются в консоли, Record Not Found мог произойти локально и не имеет ничего общего с Heroku. Если вы научитесь делать это, то сможете быстро понять, в чем проблема.

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