如何在Django和Heroku上连接到用户指定的Postgres数据库?

时间:2018-11-30 23:40:38

标签: django postgresql heroku psycopg2

我在Django中有一个网络应用程序,该应用程序使用Postgres数据库。一切都与预期的连接良好,应用程序运行正常。

该应用程序的一项功能是允许用户连接到他们自己的 Postgres数据库并从中查询数据。要求是用户提供其凭据,应用程序必须连接并查询某些数据。

使用 psycopg2 作为Postgres驱动程序,此功能可以在本地正常工作,并且已通过多个外部Postgres数据库(即该应用程序使用的数据库除外)进行了测试。查询结果将在1-5秒内返回。

但是,当部署在Heroku上并使用相同的数据库进行测试时,连接将永远不会建立并且请求会超时。

我尝试使用Celery和后台进程,但仍然无法建立连接。

创建此连接和查询数据库需要什么?除了 psycopg2 ,我还需要在Heroku上安装其他库吗?

创建连接的代码如下,然后再次在本地完全正常工作:

cnx = psycopg2.connect(host=request_body['hostname'],
                               database=request_body['dbname'],
                               user=request_body['username'],
                               password=request_body['password'],
                               port=request_body['port'])

请告知。谢谢!

0 个答案:

没有答案