django - Django PostgreSQL 现有数据库不存在
问题描述
我在 PostgreSQL 中有一个肯定存在的tablename
带有模式的表sub
——它已经创建,它已经添加了数据,当我SELECT * FROM sub.tablename
在 pgAdmin 4 中运行时,它返回结果没有问题。
当我尝试在我的 Django 应用程序中访问同一个表时,它会产生错误psycopg2.OperationalError: FATAL: database "main.sub.tablename" does not exist
。我尝试创建表名sub.tablename
,tablename
但它仍然声称该表不存在。我是它的所有者,sub
它是我用于访问该表的凭据。我已经确认主机名和端口是应该的。
我不知道如何解决此问题,因为据我所知,此错误仅在人们尚未实际创建表格或拼写错误时才会出现。
ETA:连接到 PostgreSQL 而不仅仅是使用标准 sqlite 的重点是在生产中我将有一个 PostgreSQL 表,其中包含用户名和密码(如tablename
)用于登录应用程序。不确定这是否会有所不同。
settings.py
下面是我在表/数据库信息出现的地方的相关代码简介。
设置.py
DATABASES = {
'default': {
'NAME': 'tablename',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '1234',
}
}
追溯
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
解决方案
删除除init .py 文件之外的所有迁移文件,然后再次运行 makemigrations,如果 migrate 给出任何错误使用 -
python manage.py migrate --fake
这将伪造迁移过程,你会很高兴。
推荐阅读
- javascript - gulp connect 后 Gulp 系列任务未运行
- c - 在“man addrinfo”中测试 UDP 示例服务器
- javascript - 如何在 Discord 消息的代码块中添加变量
- javascript - 如何开玩笑地覆盖 addeventlistener
- python - 在 Python 中将枚举转换为列表
- javascript - 修改数组中javascript中的当前对象元素
- python-3.x - 当我使用 pyinstaller 创建 .exe 文件时,“应用程序被冻结时找不到 dynlib/dll”,因为 pylibmtx 发生了错误
- javascript - onesignal 中的用户订阅事件
- composer-php - Composer 依赖包更改
- javascript - Reach 的 scrollTop 元素