PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nie można połączyć się z bazą danych heroku postgresql z aplikacji lokalnego węzła za pomocą sequelize

OK, znalazłem odpowiedź, przeglądając kod źródłowy sequelize:https://github.com/sequelize/sequelize/blob/master/lib/dialects/postgres/connection-manager.js#L39

Aby aktywować SSL dla połączeń PG, nie potrzebujesz native: true lub ssl: true ale dialectOptions.ssl: true więc w końcu zadziałały:

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

Aby obejść self signed certificate błąd w node-postgres wersja 8 wspomniana w SequelizeConnectionError:samopodpisany certyfikat, którego możesz użyć:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajdź rekordy, w których dołączenie nie istnieje

  2. Kolumna PostgreSQL 'foo' nie istnieje

  3. Zapobiegaj wyzwalaniu rekurencyjnemu w PostgreSQL

  4. błąd instrukcji sql:kolumna .. nie istnieje

  5. pobierz tabelę JOIN jako tablicę wyników za pomocą PostgreSQL/NodeJS