Rails server работает в режиме разработки, но не в рабочем режиме

#ruby-on-rails #postgresql #amazon-s3 #actionview

#ruby-on-rails #postgresql #amazon-s3 #actionview

Вопрос:

Я создаю приложение уже несколько месяцев, оно размещено на heroku, и я начал вносить в него изменения некоторое время, не переходя на heroku, просто работая на localhost. Я пошел, чтобы отправить его в heroku, и столкнулся с проблемой, когда конвейеру ресурсов не понравилась переменная в теге erb. Я достал его, чтобы запустить код, и столкнулся с более серьезной проблемой. Тем не менее, ошибка 500, но в журналах теперь указано:

 ActionView::Template::Error (FATAL:  Peer authentication failed for user "fullstack".
 

Теперь, в моем исследовании по этому вопросу, я попробовал несколько вещей, и вот некоторые из моих выводов.

Я вообще не менял файлы storage.yml или database.yml. Производственный сервер — это пакеты AWS s3, и они подключены к config.active_storage.service как для производства, так и для разработки в файлах config / environments.

Рабочий пользователь в database.yml называется fullstack . У пользователя-разработчика нет имени пользователя или пароля. Мне удалось сбросить сервер с оригинальным именем пользователя и паролем, но когда я меняю рабочее имя пользователя и перезагружаю сервер, он говорит

 PG::ConnectionBad: fe_sendauth: no password supplied
 

Итак, я захожу в терминал и проверяю владельца базы данных fullstack, несколько вещей с этим. Сначала я проверяю psql -l, чтобы увидеть все базы данных, и у меня есть fullstack_test и fullstack_development, но нет fullstack_production, и я думаю, что это нормально, поскольку rails генерирует только dev и test при создании. Эти два принадлежат моему пользователю Ubuntu, sethb. Я попытался создать базу данных fullstack_production, чтобы посмотреть, что произойдет, и я получаю эту ошибку

 PG::ConnectionBad: FATAL:  Peer authentication failed for user "fullstack"
 

Когда я исследовал это, люди говорили, чтобы изменить настройку в моем pg_hba. Я заглянул в свой, и для него уже было установлено значение: host all all all trust. На данный момент я занимаюсь этим около 20 часов, и я хотел бы услышать, есть ли у кого-нибудь идеи о том, как это исправить, я даже не знаю, как поступить с этим честно. Любая помощь была бы очень признательна. Я также могу предоставить дополнительную информацию о любых журналах, которые у меня были, если это поможет

Ответ №1:

Итак, обновление истории, решение на полпути. Я клонировал полный проект и aws, и когда я пошел, чтобы нажать на heroku, кто-то помог мне заметить, что у меня не было node.js пакет сборки установлен. Как только я это сделал и запустил новую версию, она сработала. Я попробовал rails s -e production, но это все равно выдает ошибку 500. На этот раз он говорит, что application.css отсутствует. Но это проблема, я думаю, у кого-то есть решение на потом. В любом случае, проверьте настройки Heroku! Спасибо

Сет Б.