python - ProgrammingError at/admin/login/

标签 python django python-3.x django-admin

因此,我更改了用于我的 Django 应用程序的设备。为了更换设备,我只是将整个存储库复制粘贴到新设备,设置数据库,运行假迁移,然后当应用程序运行良好时,再次开始开发。

但是,当我开始在 Django 管理站点上进行开发时,我遇到了这个问题。

ProgrammingError at /admin/login/
relation "django_session" does not exist

LINE 1: SELECT (1) AS "a" FROM "django_session" WHERE "django_sessio...

现在,我不知道如何才能再次访问 Django Admin。我已经检查过:

  1. 应用程序、django admin 及其相关依赖项是否在INSTALLED APPS 中。他们是。
  2. django-admin 相关表是否在数据库中:它们是。
  3. 检查我是否已将模型注册到 admin.py 中的管理站点。我有。
  4. 我是否进行了正确的假迁移。我运行了 python manage.py makemigrations,它告诉我 未检测到任何更改。 我运行了 migrate,告诉我没有要应用的迁移。我什至查看了 showmigrations,它已经将所有迁移应用到管理站点。

有一件事我没有尝试过,而且我宁愿不做,就是删除所有迁移文件并从头开始。非常感谢任何帮助,我在 SO 中搜索了类似的问题

最佳答案

如果你有一个新数据库,你不应该伪造迁移。这将迁移标记为已完成,但实际上并未运行它们。

这意味着 Django 认为它已经运行了迁移以创建 session 表(未检测到迁移)但它实际上并没有创建它(关系不存在)。

如果您伪造了所有迁移,您可能可以通过从 django_migrations 表中删除条目并正确运行迁移来使其正常工作。否则,如果数据库不包含任何重要数据,则重新创建数据库可能是最简单的方法。

关于python - ProgrammingError at/admin/login/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474163/

相关文章:

javascript - Django Inlineformset - 基于第二个下拉菜单的 JQuery 下拉菜单

python - 字符串到日期时间 django

python - 在 Python 中向后迭代字典

javascript - 点击交互式chart.js条形图并获取JS中标签和组的值

python - 如何手动生成更新枚举列的 alembic 迁移脚本

python - R 和 Python 中线性回归的差异

python - 如何配置 rsyslog 以与 SysLogHandler 日志类一起使用?

django - 使用序列化程序 Django (DRF) 创建对象

python-3.x - while 循环时索引错误 : list index out of range (Python beginner,)

python - 如何将用户输入自动永久存储到字典中