0

几天来,我一直在尝试在 heroku 上部署一个不和谐的机器人,我使用托管在 aws 上的 postgresql 数据库和 heroku postgres。我在尝试使用 asyncpg 将 ssl 连接到数据库时遇到了很多问题,我可以在互联网上找到一些问题的解决方案,但我现在遇到了这个错误:

2020-12-28T10:33:11.856268+00:00 app[worker.1]: raise exceptions.InterfaceError(

2020-12-28T10:33:11.856403+00:00 app[worker.1]: asyncpg.exceptions._base.InterfaceError: `ssl` parameter can only be enabled for TCP addresses, got a UNIX socket path: '/run/postgresql/.s.PGSQL.5432'

这就是我连接到数据库的方式:

    ctx = ssl.create_default_context(cafile='rds-ca-2019-eu-west-1.pem')
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    bot.con = await asyncpg.create_pool(dsn=DATABASE_URI, ssl=ctx)

    ...

    bot.loop.run_until_complete(create_db_pool())

在尝试在 Heroku 上部署我的代码时,我不知道为什么会出现该错误。我从我的电脑上运行它没有这个问题.. 试图阅读 asyncpg 文档,但结果并不多。我不知道它为什么使用 unix 套接字并且并不真正了解它是如何工作的,但我读过 asyncpg 现在应该支持 ssl 连接......你认为有办法让这个工作,或者我应该切换到 psycopg2 吗?

4

0 回答 0