我已经开始我的docker映像如下:
docker run --name fnf-postgis -e POSTGRES_DB=fnf -e POSTGRES_USER=fnfuser -e POSTGRES_PASSWORD=fnf2pwd -p5432:5432 -d mdillon/postgis:11
我已经设置了django数据库配置:
^{pr2}$但是,运行makemigrations
会出现以下错误:
psycopg2.OperationalError: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
但我可以从pycharm成功连接到容器
您应该提供postgresql docker容器的名称作为
host
键的值:根据psycopg2的documentation。如果主机值为空,那么默认情况下它将查找Postgres的Unix套接字文件。在
在您的错误消息中,提到它正在查找
tmp
目录下的套接字文件(.s.PGSQL.5432)。在如果您将
postgres
作为单独的容器运行,那么您可以在容器中的/var/run/postgresql
目录下找到这个套接字文件。在您可以将此文件夹装载到主机上,如下所示:
然后可以更新数据库对象,如下所示:
^{pr2}$现在应该建立联系了。在
Pycharm和Django设置之间存在差异。在
当Django设置试图连接到
''
时,Pycharm明确地连接到localhost
。在只需将
'localhost'
作为HOST
Django设置就可以了。在请注意,正确的设置名称是大写},而不是小写}。
HOST
和{host
和{相关问题 更多 >
编程相关推荐