繁体   English   中英

无法使用python和heroku postgres在本地连接到postgresql数据库

[英]Cannot connect to the postgresql database locally using python and heroku postgres

我第一次使用 heroku postgres。 根据教程做了一切,特别是这个:

set DATABASE_URL=postgres://$(whoami)

Python:

DATABASE_URL = os.environ['DATABASE_URL']

connection = psycopg2.connect(DATABASE_URL, sslmode='require')

cursor = connection.cursor()

这是我尝试连接到数据库时收到的错误消息:

(myenv) C:\deployment\myenv\remastered>heroku local

20:46:58 worker.1   |  Traceback (most recent call last):
20:46:58 worker.1   |    File "db.py", line 6, in <module>
20:46:58 worker.1   |      connection = psycopg2.connect(DATABASE_URL, sslmode='require')
20:46:58 worker.1   |    File "C:\deployment\myenv\lib\site-packages\psycopg2\__init__.py", line 122, in connect
20:46:58 worker.1   |      conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
20:46:58 worker.1   |  psycopg2.OperationalError: could not translate host name "$(whoami)" to address: Unknown server error
[DONE] Killing all processes with signal  SIGINT
20:46:58 worker.1   Exited with exit code null

似乎出于某种原因,它无法将“$(whoami)”表达式转换为数据库 url。

我该如何解决?

只有在heroku上运行应用程序时才应该工作吗? 在本地运行时,我应该手动指定 url 吗?

除非我从 heroku postgres 数据库凭据复制 url 以进行手动连接,否则无论我在那里注入什么,我都会得到相同的错误,而不是 $(whoami) ,但这些会定期更改,因此这不是很方便的解决方案。 不过,它在 heroku 上启动时连接良好。

你能试试这个吗?

set DATABASE_URL=postgres://%USERNAME%

不幸的是,在 Windows 命令提示符中没有进行命令替换的内置方法。 $(...)仅在 UNIX shell 中可用。

您还可以查看以下帖子:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM