PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Es kann keine Verbindung mit der Heroku-Postgresql-Datenbank von der lokalen Knoten-App mit Sequelize hergestellt werden

OK, ich habe die Antwort gefunden, indem ich den Sequelize-Quellcode durchsucht habe:https://github.com/sequelize/sequelize/blob/master/lib/dialects/postgres/connection-manager.js#L39

Um SSL für PG-Verbindungen zu aktivieren, benötigen Sie nicht native: true oder ssl: true aber dialectOptions.ssl: true Folgendes hat also endlich funktioniert:

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

So umgehen Sie das self signed certificate Fehler auf node-postgres Version 8 erwähnt bei SequelizeConnectionError:selbstsigniertes Zertifikat, das Sie stattdessen verwenden können:

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