Reputation: 19237
For months now, a ruby (sinatra) app "foo.rb" on my dev't Mac has been using a remote Heroku-hosted Postgres database.
The app does not use ANY local database, neither in development nor production.
For another project, I installed Postgress.app from Heroku, first removing a very OLD version as recommended, using brew remove postgresql
The next time I ran foo.rb, and tried at access the (remote) database with SomeModel.count, I get the error:
PG::ConnectionBad: FATAL: no pg_hba.conf entry for host , user , database , SSL off
I'm confused why the error shows my devt machine address when the database connection config points to a remote postgres url, and why it says SSL off.
Any thoughts how to get rid of the error? Is there any way to see the PATH to the pg_hba.conf it is complaining about, so I can verify it contains the correct host entries?
(I wonder if the pg gem has its own copy squirreled away somewhere.)
The copies of pg_hba.conf that I can find (in /Library/Application Support/XXXX for both the old and new Postgress.app versions) have the correct (and unchanged) host entries.
Upvotes: 0
Views: 75
Reputation: 19237
The answer turned out to be:
pg
in Gemfilebundle install
pg
bundle install
I suspect when the gem pg
is installed, it dynamically establishes some link to postgresql, so if you move postgresql (as I did when I installed Postgres.app) you need to remove the pg
gem then re-add it.
Upvotes: 0
Reputation: 61
It looks like your script is trying to connect somewhere that is not properly configured
Things to check in that case:
your database.yml or connection string, DATABASE_URL matches your localhost from postgres.app
is your postgres.app is running and have a db server running (check the elephant icon on the top bar of your osx)
You installed and configured properly the postgres app you need to set the path, you can check by typing psql in a new terminal window, if it runs is ok to go.
Configure your $PATH to use the included command line tools (optional):
sudo mkdir -p /etc/paths.d &&
echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
Upvotes: 0