我在PostgreSQL中有一个表tablename
,其中的模式sub
确实存在,它已经创建,它已经添加了数据,当我在pgAdmin 4中运行SELECT * FROM sub.tablename
时,它返回的结果没有问题。
[当我尝试然后在Django应用程序中访问该表时,它会产生错误psycopg2.OperationalError: FATAL: database "main.sub.tablename" does not exist
。我尝试使表名称为sub.tablename
和tablename
,但它仍声称该表不存在。我是sub
的所有者,它是我用来访问该表的凭据。我已经确认主机名和端口应该是正确的。
我不知道如何解决此问题,因为据我所知,该错误仅在人们尚未真正创建表或拼写错误时显示。
下面是我在settings.py
中出现的相关代码表,其中显示了表/数据库信息。
settings.py
DATABASES = {
'default': {
'NAME': 'tablename',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '1234',
}
}
Traceback
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection
self.connect()
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/base.py", line 194, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/postgresql/base.py", line 178, in get_new_connection
connection = Database.connect(**conn_params)
File "/usr/local/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL: database "opr.opr_user_test" does not exist
检查settings.py中的数据库名称,它应该是'sub'而不是'tablename'。尝试这个..数据库= {'默认':{'NAME':'sub','ENGINE':'django.db.backends.postgresql','USER':'用户名','PASSWORD':'password','HOST':'localhost','PORT':'1234',}}