Node.js, PostgreSQL error: no pg_hba.conf entry for host
Change your connection code to use ssl. Following your linked example:
var conString = "pg://admin:guest@localhost:5432/Employees";var client = new pg.Client(conString);client.connect();
becomes:
var client = new pg.Client({ user: "admin", password: "guest", database: "Employees", port: 5432, host: "localhost", ssl: true}); client.connect();
https://github.com/brianc/node-postgres/wiki/Client#new-clientobject-config--client
Running on heroku:
We ran into this error while upgrading the pg database on heroku from hobby
tier to standard-0
. SSL is required, but we didnt set it in our config.
Include in config when initialize new Sequelize(...)
"dialect": "postgres","dialectOptions": { "ssl": true}
This trick was, that the ssl option is wrapped in dialectOptions
.found here: https://github.com/sequelize/sequelize/issues/956#issuecomment-147745033
Info by @Atish:Use
options: { dialect: "postgres", native: true, # adding this maybe breaks on hobby dyno ssl: true, dialectOptions: { ssl: true }}
In the case sequelize ignores all of your efforts to turn ssl on, you can try to convince pg to enable ssl for all conncetions by default:
var pg = require('pg');pg.defaults.ssl = true;const Sequelize = require('sequelize');const sequelize = new Sequelize('postgres://...');