因此,我更改了用于我的 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。我已经检查过:
- 应用程序、django admin 及其相关依赖项是否在
INSTALLED APPS
中。他们是。 - django-admin 相关表是否在数据库中:它们是。
- 检查我是否已将模型注册到
admin.py
中的管理站点。我有。 - 我是否进行了正确的假迁移。我运行了
python manage.py makemigrations
,它告诉我未检测到任何更改。
我运行了 migrate,告诉我没有要应用的迁移。我什至查看了showmigrations
,它已经将所有迁移应用到管理站点。
有一件事我没有尝试过,而且我宁愿不做,就是删除所有迁移文件并从头开始。非常感谢任何帮助,我在 SO 中搜索了类似的问题
最佳答案
如果你有一个新数据库,你不应该伪造迁移。这将迁移标记为已完成,但实际上并未运行它们。
这意味着 Django 认为它已经运行了迁移以创建 session 表(未检测到迁移)但它实际上并没有创建它(关系不存在)。
如果您伪造了所有迁移,您可能可以通过从 django_migrations
表中删除条目并正确运行迁移来使其正常工作。否则,如果数据库不包含任何重要数据,则重新创建数据库可能是最简单的方法。
关于python - ProgrammingError at/admin/login/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474163/