PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Impossibile connettersi al database heroku postgresql dall'app del nodo locale con sequelize

OK, ho trovato la risposta sfogliando il codice sorgente di sequelize:https://github.com/sequelize/sequelize/blob/master/lib/dialects/postgres/connection-manager.js#L39

Per attivare SSL per connessioni PG non è necessario native: true o ssl: true ma dialectOptions.ssl: true quindi alla fine ha funzionato quanto segue:

sequelize = new Sequelize(process.env.DATABASE_URL, {
    dialect: 'postgres',
    protocol: 'postgres',
    dialectOptions: {
        ssl: true
    }
});

Per aggirare il self signed certificate bug su node-postgres versione 8 menzionata in SequelizeConnectionError:certificato autofirmato che puoi utilizzare invece:

sequelize = new Sequelize(process.env.DATABASE_URL, {
    dialect: 'postgres',
    protocol: 'postgres',
    dialectOptions: {
        ssl: {
            require: true,
            rejectUnauthorized: false
        }
    }
});