简体   繁体   English

在django测试期间加载夹具时的IntegrityError

[英]IntegrityError when loading fixture during django testing

I'm loading a fixture created with dumpdata, and getting the following exception: 我正在加载使用dumpdata创建的fixture,并获得以下异常:

Problem installing fixture 'db_dump.json': Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 174, in handle
    obj.save(using=using)
  File "/usr/lib/python2.6/site-packages/django/core/serializers/base.py", line 165, in save
    models.Model.save_base(self.object, using=using, raw=True)
  File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 526, in save_base
    rows = manager.using(using).filter(pk=pk_val)._update(values)
  File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 491, in _update
    return query.get_compiler(self.db).execute_sql(None)
  File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 869, in execute_sql
    cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 735, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py", line 234, in execute
    return Database.Cursor.execute(self, query, params)
IntegrityError: columns app_label, model are not unique

This is with a sqlite3 backend. 这是一个sqlite3后端。

Update: Using natural keys doesn't make a difference here. 更新:使用自然键在这里没有区别。

What does it mean, and why is it happening? 这是什么意思,为什么会发生?

Apparently one of the traps for the unwary is that one must exclude contenttypes when exporting fixtures. 显然,粗心的陷阱之一就是在导出灯具时必须排除内容类型。 (Thanks to subsume on #django for the information). (感谢在#django上包含信息)。

To exclude content types use the -e option when running the dumpdata command. 要排除内容类型,请在运行dumpdata命令时使用-e选项。

$./manage.py dumpdata -e contenttypes > initial_data.json
python manage.py dumpdata --exclude=contenttypes --exclude=auth.Permission > initial_data.json

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM