Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 我无法使用Heroku上的Strapi连接到Postgres DB_Postgresql_Heroku Postgres_Strapi - Fatal编程技术网

Postgresql 我无法使用Heroku上的Strapi连接到Postgres DB

Postgresql 我无法使用Heroku上的Strapi连接到Postgres DB,postgresql,heroku-postgres,strapi,Postgresql,Heroku Postgres,Strapi,尝试在Heroku上使用Postgres部署Strapi,如下所述 但是我得到了这个错误 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',

尝试在Heroku上使用Postgres部署Strapi,如下所述

但是我得到了这个错误

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数据库一起使用。这里的主要问题是,您正在从手动设置的配置变量中读取postgres数据库url的组件。Heroku强烈建议不要这样做,因为在发生灾难时,他们可能需要将数据库移动到新主机
DATABASE_URL
是Heroku在应用程序上创建数据库时设置的,它是您可以依靠的一个配置变量来保持最新状态。继续


您需要从
database\u URL
config var中解析用户名、密码、主机、端口和数据库名称,并将它们提供给
settings
块的属性。根据您提供的错误,我可以告诉您目前没有这样做,因为Heroku数据库用户名都以“u”开头,因此如果您收到错误
user“ssqqeaz***”
,则会出现严重错误。作为第一步,您可以尝试在设置块中对这些值进行硬编码,以确保其正常工作(确保在执行此操作后旋转凭据,或者清理git历史记录以防止泄漏凭据)。postgres连接url的模式如下:
postgres://$USERNAME:$PASSWORD@$HOSTNAME:$PORT/$DATABASE\u NAME

不确定它是否有助于移动配置

  • 从选项密钥中删除ssl

  • 在设置密钥内的密码后插入ssl 例如

    ssl:env.bool('DATABASE_ssl',false),

还要检查Heroku内部的应用程序配置变量,确保您具有所需的postgres配置变量设置,并且它们与Heroku生成的数据库\u URL配置变量匹配。 最后检查您的./config/server.js文件,确保您的主机是0.0.0.0

例如


这回答了你的问题吗?如何将?ssl=true添加到连接字符串。我试图更改Heroku UI上的数据库URL,但收到一条消息:无法更新项。我如何更新它?它没有帮助:(嗨,谢谢你的回答。我不明白我如何从数据库_URL提取用户名/密码等。strapi不应该为我做吗?第二件事是网站在本地工作,所以用户名从“ssqq***”开始是完全正确的。:-/Strapi应该为您这样做吗?是的,可能应该这样做,但看起来它没有。许多ORM对
DATABASE\u URL
具有一流的支持,并且能够动态解析组件(用户名、pword、主机等)并将其应用到配置中。不幸的是,您需要手动执行此操作。快速的谷歌搜索会显示npm软件包,您可能会从中获得灵感。关于用户名,您是否在Herkoku Postgres中使用Postgres凭据?因为所有默认凭据都以“u”开头。
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  admin: {
    auth: {
      secret: env('ADMIN_JWT_SECRET', '**********************************'),
    },
  },
});