Приложение Ruby больше не может получить доступ к удаленному Heroku Postgres - ПОСЛЕ установки Postgres.app локально - PullRequest
0 голосов
/ 05 февраля 2019

Уже несколько месяцев приложение ruby ​​(sinatra) "foo.rb" на моем dev't Mac использует удаленную базу данных Postgres, размещенную на Heroku.

Приложение не использует ЛЮБУЮ локальную базу данных,ни в разработке, ни в производстве.

Для другого проекта я установил Postgress.app из Heroku, сначала удалив очень старую версию, как рекомендовано, используя brew remove postgresql

В следующий раз, когда я запустил foo.rb, и попытался получить доступ к (удаленной) базе данных с SomeModel.count, я получаю ошибку:

PG :: ConnectionBad: FATAL: нет записи pg_hba.conf для хоста, пользователя, базы данных, SSLoff

Я запутался, почему ошибка показывает адрес моей машины devt, когда конфигурация соединения с базой данных указывает на удаленный URL-адрес postgres, и почему он говорит, что SSL выключен.

Любые мысли, какизбавиться от ошибки?Есть ли какой-нибудь способ увидеть путь к файлу pg_hba.conf, на который он жалуется, так что я могу проверить, что он содержит правильные записи хоста?

(Интересно, если у драгоценного камня pg есть своя собственная копия, где-то спрятанная.)

Копии pg_hba.conf, которые я могу найти (в / Library / Application Support / XXXX для старой и новой версий Postgress.app), содержат правильные (и неизменные) записи хоста.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Ответ оказался:

  1. комментарий pg в Gemfile
  2. bundle install
  3. replace pg
  4. bundle install

Я подозреваю, что когда гем pg установлен, он динамически устанавливает некоторую ссылку на postgresql, поэтому, если вы переместите postgresql (как я делал, когда устанавливал Postgres.app), вам нужно удалить гем pg, а затем снова добавить его.

0 голосов
/ 06 февраля 2019

Похоже, ваш сценарий пытается подключиться к чему-то, что неправильно настроено

В этом случае необходимо проверить:

  1. ваш database.yml или строку подключения, DATABASE_URL соответствует вашему локальному хосту из postgres.app

  2. если ваш postgres.app запущен и запущен сервер db (проверьте значок слона на верхней панели вашего osx)

  3. Вы правильно установили и настроили приложение postgres, которое вам нужно для задания пути, вы можете проверить, набрав psql в новом окне терминала, если оно работает, все в порядке.

Настройте $ PATH для использования включенных инструментов командной строки (необязательно):

sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
опубликуйте свой файл или его часть в вопросе, это очень помогает для отладки:)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...