使用DrizzleORM连接Heroku-Postgres(AWS)时的客户端认证错误
解决DrizzleORM连接Heroku-Postgres的SSL问题
问题原因
- 第一个错误
no pg_hba.conf entry... no encryption:Heroku Postgres强制要求SSL连接,初始连接URL未启用加密。 - 第二个错误
DEPTH_ZERO_SELF_SIGNED_CERT:Heroku Postgres使用自签名SSL证书,默认pg驱动会拒绝这类证书。
解决方案
修改Drizzle配置,在dbCredentials中添加SSL配置(无需手动在连接URL后追加?sslmode=require):
import { defineConfig } from 'drizzle-kit'; export default defineConfig({ schema: "./schema.ts", out: "./drizzle", driver: "pg", dbCredentials: { connectionString: process.env.DATABASE_HOST!, ssl: { rejectUnauthorized: false } }, verbose: true })
说明
rejectUnauthorized: false会让pg驱动接受Heroku的自签名证书,这在Heroku环境下是安全的——连接本身是加密的,且Heroku的Postgres服务为可信来源。
内容的提问来源于stack exchange,提问作者ihaveaquestion
相关产品推荐
相关产品推荐

