【问题标题】:IntegrityError: Problem installing fixtureIntegrityError:安装夹具时出现问题
【发布时间】:2019-02-27 06:47:05
【问题描述】:

我将我的第一个 Django 项目上传到 DigitalOcean。在命令python manage.py loaddata initial_data.json 之后,我收到了这条消息:

django.db.utils.IntegrityError:安装夹具时出现问题 '/webapps/django_shop/shop/initial_data.json': 无法加载 contenttypes.ContentType(pk=3):重复的键值违反了唯一性 约束“django_content_type_app_label_76bd3d3b_uniq”细节:关键 (app_label, model)=(auth, permission) 已经存在。

我该如何解决?

【问题讨论】:

    标签: python django


    【解决方案1】:

    看起来您已经生成了包含 Django 的默认数据集的固定装置,即作为 Django 的某些管道数据类型的第一个 migrate 运行的一部分正常插入的内置条目。

    您应该检查您的夹具过程,因为内容类型条目将在您(和 Django 的)应用程序的迁移运行时自动创建,因此它们不应出现在夹具中。可能还有其他表会遇到同样的问题,所以现在是确保您没有包含任何其他会导致这种情况的数据的好时机。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我用这种方法解决了

      包含要从中导出数据的数据库

      python manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
      

      要导入的新数据库

      python manage.py flush
      

      // 重要!禁用模型 pre_save 和 post_save 上的所有信号

      python manage.py loaddata db.json
      

      // 不要忘记启用您禁用的所有信号

      【讨论】:

      • 注释掉“pre_save”和“post_save”解决了我的问题。
      猜你喜欢
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多