如何解析“ django_content_type 已经存在”?

在升级到 django 1.8之后,我在迁移过程中收到了这个错误:

ProgrammingError: relation "django_content_type" already exists

我对这个错误的背景很感兴趣但更重要的是, 我该怎么解决呢?

44647 次浏览

项目上的初始迁移有时可以使用假初始化进行故障排除

python manage.py migrate --fake-initial

这在1.8中是新的,在1.7中,——假首字母默认是隐式的,但在1.8中是显式的。

文件:

如果迁移中所有 CreateModel 操作创建的所有模型名称的所有数据库表都已经存在,那么可以使用—— fak- 初始选项来允许 Django 跳过应用程序的初始迁移。此选项适用于首次针对预先使用迁移的数据库运行迁移时使用。但是,除了匹配表名之外,该选项不检查是否匹配数据库模式,因此只有在您确信现有模式与初始迁移中记录的内容相匹配时,才可以安全地使用该选项。

Https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option——-fake-initial

我授予该用户在该特定数据库上的所有权限,它解决了这个问题。

我在 Django 2.2.7或者在 Ubuntu 18.04 + Postgres 10.10版本上托管的 Django 3.0上解决了这个问题。

  1. 恢复 Postgres 数据库中的数据库(使用 pgAdmin 工具)
  2. (viralenv) python management. py loaddata Dumpfile.json
  3. 从数据库中删除 django _ mobilations 表(使用 pgAdmin 工具)
  4. (viralenv) python management. py makhemations
  5. Python manage.py shift ——假的
  6. (viralenv) python management. py 偏移
  7. (viralenv) python management. py Collectstatic
  8. (viralenv) python management. py runserver 0.0.0.0:8000