[如此处所述,尝试使用Postgres在Heroku上部署Strapi
https://strapi.io/documentation/v3.x/deployment/heroku.html
但是我得到这个错误
error: no pg_hba.conf entry for host "84.212.51.43", user "ssqqeaz***", database "d6gtu***", SSL off
我使用Heroku Postgres附加组件。
我的数据库配置:
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'postgres',
host: env('DATABASE_HOST', '127.0.0.1'),
port: env.int('DATABASE_PORT', 27017),
database: env('DATABASE_NAME', 'strapi'),
username: env('DATABASE_USERNAME', ''),
password: env('DATABASE_PASSWORD', ''),
},
options: {
ssl: true
},
},
},
});
为什么?请帮助!
尝试将ssl : true
更改为ssl : false
您发布的当前配置不适用于Heroku Postgres数据库。这里的主要问题是您正在从手动设置的config vars中读取postgres数据库url的组件。 Heroku强烈建议您这样做,因为如果发生灾难,他们可能需要将数据库移至新主机。 DATABASE_URL
由Heroku在应用程序上创建数据库时设置,它是您可以用来保持最新状态的一个配置变量。继续...
您将需要从DATABASE_URL
配置变量中解析用户名,密码,主机,端口和数据库名称,并将其提供给settings
块的属性。根据您提供的错误,我可以告诉您当前不执行此操作,因为Heroku数据库的用户名都以'u'开头,因此,如果出现错误user "ssqqeaz***"
,则非常有问题。第一步,您可以尝试在settings块中对这些值进行硬编码,以确保其有效(确保在执行操作后旋转凭据,否则请清除git历史记录以防止泄露凭据)。 Postgres连接网址的格式如下:postgres:// $USERNAME : $PASSWORD @ $HOSTNAME : $PORT / $DATABASE_NAME
。