首页 > 解决方案 > 无法使用 Sequelize / NodeJS 作为缺少 sslmode 标记连接到 Heroku postgres DB

问题描述

我正在使用 Heroku / DigitalOcean ("DO") 应用程序托管服务,试图简单地将我的 NodeJS 应用程序连接到 Heroku/DO 数据库。这些服务使用以下内容填充我的环境变量:

DATABASE_URL="postgresql://username:password@url:ip/dbname?sslmode=require"

不幸的是,当我运行 Sequelize 时,我收到以下错误消息:

ConnectionError [SequelizeConnectionError]: no pg_hba.conf entry for host "[my ip address]", user "[db user]", database "[db name]", SSL off

我认为连接字符串可能配置错误,因为我可以清楚地看到它正在尝试通过 ssl 连接。

$ node -v
v15.9.0

标签: node.jspostgresqlherokusequelize.jsdigital-ocean

解决方案


嗨,我与 Digital Ocean DB PostgreSQL 集群分享我的连接

production: {
     host: process.env.DB_HOST,
     port: process.env.DB_PORT,
     database: process.env.DB_DATABASE,
     username: process.env.DB_USER,
     password: process.env.DB_PASSWORD,
     dialect: 'postgres',
     dialectOptions: { 
     ssl: { 
         require: true,
         rejectUnauthorized: false
       }
     }
 }

推荐阅读