【发布时间】:2020-09-22 11:26:57
【问题描述】:
我有一个更新的 Strapi 站点,运行 V3.1.4 - 我们来自一个 V3.0.6 站点,结构变化很小。 Strapi 可以在我的本地版本上连接到 Postgres,一切都很好,但是当部署到 Heroku 时,它变得更加复杂。
我有一个使用 Heroku Hobby 数据库的临时站点,包含以下软件包:
"knex": "^0.20.10",
"pg": "^8.0.3",
"pg-connection-string": "^2.3.0",
我的配置使用:
options: {
pool: {
min: 0,
max: 18,
createTimeoutMillis: 30000,
acquireTimeoutMillis: 600000,
idleTimeoutMillis: 30000
}
}
并且 SSL 设置为 false。
这运行良好,但如果我将其部署到“实时”(即使用需要 SSL 的生产数据库),我会收到以下错误:
[DATABASE] [10-1] sql_error_code = 28000 FATAL: no pg_hba.conf entry for host "3.249.190.208", user "XXX", database "XXX", SSL off
我以前也遇到过这个问题,根据this post,我已将 PG 降到 V7.4.3,但随后出现此错误:
error KnexTimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?
并且没有不能通过更改任何池设置来使其工作,包括使用:
ssl:true,
rejectUnauthorized: false,
Node 和 NPM 设置为:
"engines": {
"node": ">=10.0.0",
"npm": ">=6.0.0"
},
我想我已经阅读了有关此主题的大多数帖子,但似乎没有任何效果。任何想法都非常受欢迎。
【问题讨论】:
-
您的解决方案是什么?似乎 Heroku 现在要求所有 Postgres 连接的免费/爱好层的 SSL 配置?
标签: heroku knex.js strapi heroku-postgres