【发布时间】:2020-11-14 12:29:15
【问题描述】:
当我将Postgres 数据库与Django 连接时,它给了我以下错误(也附有屏幕截图)。当我使用直接数据库名称或用户等时,这工作正常,但当我通过环境变量使用时,它不起作用。
这是我的 setting.py 文件:
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.environ.get('DATABASE_NAME'),
'USER': os.environ.get('DATABASE_USER'),
'PASSWORD': os.environ.get('DATABASE_PASSWORD'),
'HOST': os.environ.get('DATABASE_HOST'),
'PORT': 5432
this is my .bash_profile enviroment variable
export DATABASE_NAME='blog'
export DATABASE_USER='bloguser'
export DATABASE_PASSWORD='blog@123'
export DATABASE_HOST='localhost'
错误本身:
self.connection = self.get_new_connection(conn_params)
File "/home/kamran/anaconda3/envs/DjangoEnv/lib/python3.8/site-packages/django/db/backends/postgresql/base.py", line 178, in get_new_connection
connection = Database.connect(**conn_params)
File "/home/kamran/anaconda3/envs/DjangoEnv/lib/python3.8/site-packages/psycopg2/__init__.py", line 127, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.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"?
【问题讨论】:
-
我会说使用
pdb(类似于import pdb; pdb.set_trace())并在连接数据库之前检查环境变量是否正确。 -
请解释一下
-
试图在下面的正确答案中解释它。
标签: django database postgresql environment-variables django-settings