База данных PG отлично работает на локальном хосте, но не на героку

У меня есть приложение Rails, использующее библиотеку Active Record. На локальном хосте все правильно сохраняется в базе данных. Однако, когда тот же код загружается в Heroku, и я нажимаю кнопку, которая должна сохранить его в базе данных, я получаю следующую ошибку: К сожалению, что-то пошло не так.

Из моих журналов я получаю следующую ошибку: ActiveRecord :: StatementInvalid (PG :: UndefinedTable: ERROR: связь "сообщения" не существует

Информация о базе данных localhost:

     Name          |  Owner   | 
   messages        |  kari    |

Как исправить мою базу данных в Heroku.


person Karina Kozarova    schedule 28.10.2017    source источник
comment
Вы еще не перенесли свою базу данных на Heroku, верно?   -  person jvillian    schedule 28.10.2017
comment
Как мне его перенести?   -  person Karina Kozarova    schedule 28.10.2017
comment
Вам также необходимо выполнить миграцию на сервере Heroku: heroku run rake db:migrate   -  person Cyzanfar    schedule 28.10.2017


Ответы (1)


Вам нужно будет перенести вашу базу данных.

У вас должен быть установлен интерфейс командной строки Heroku.

Затем в консоли вы сделаете что-то вроде:

heroku run rake db:migrate

Если у вас определено более одного пульта heroku (например, я обычно использую heroku_staging и heroku_production), это будет примерно так:

heroku run rake db:migrate --remote heroku_production

Вы также можете сделать что-то вроде:

heroku run rake db:migrate --app your_app_name

Если тебе так больше нравится.

person jvillian    schedule 28.10.2017
comment
Но мое приложение heroku подключено к репозиторию GitHub, как мне это сделать через терминал (у меня есть локальный клон репо) - person Karina Kozarova; 28.10.2017
comment
Как я уже сказал выше, вам нужно установить Heroku CLI на вашем локальном компьютере, а затем вы вводите одну из этих команд в свой терминал. - person jvillian; 28.10.2017
comment
Он у меня установлен, но мое приложение получает исходный код с Github, все, что у меня есть, - это локальная копия репозитория, поэтому на моем компьютере нет приложения heroku. - person Karina Kozarova; 28.10.2017
comment
На вашем локальном компьютере нет приложения Heroku. Если вы хотите развернуть код из своей учетной записи github в Heroku, вам нужно запустить git push heroku master - person Cyzanfar; 28.10.2017
comment
Ну не совсем. Приложение развертывается автоматически всякий раз, когда я нажимаю на репозиторий GitHub. и если я выполняю вход в систему heroku в том месте, где код хранится локально (клон github на моей машине), и я пытаюсь запустить любую команду, я получаю ** ▸ Приложение не указано ** - person Karina Kozarova; 28.10.2017
comment
Чтобы указать приложение, попробуйте последнюю строку, которую я дал вам, с помощью переключателя --app. - person jvillian; 28.10.2017
comment
Я получаю следующую ошибку: ibb.co/ifBcJ6 Мой код: class CreateMessages ‹ActiveRecord :: Migration [5.1 ] def изменить create_table: сообщения do | t | t.text: text # добавить информацию в базу данных t.timestamps end end end - person Karina Kozarova; 28.10.2017
comment
Фу. Код в комментариях. Так противно. Но, насколько я могу судить, это выглядит нормально. Думаю, на вашем месте я бы вычеркнул этот комментарий на всякий случай, если он мешает работе. - person jvillian; 28.10.2017
comment
pastebin.com/zbWFxknj Вот код, я удалил комментарий, но проблема все еще существует. - person Karina Kozarova; 28.10.2017
comment
Я не вижу в этом ничего плохого. Я предлагаю вам задать новый вопрос, и кто-то может знать, что не так. - person jvillian; 28.10.2017