开发者

IntegrityError when loading fixture during django testing

开发者 https://www.devze.com 2023-03-14 15:24 出处:网络
I\'m loading a fixture created with dumpdata, and getting the following exception: Problem installing fixture \'db_dump.json\': Traceback (most recent call last):

I'm loading a fixture created with dumpdata, and getting the following exception:

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开发者_如何学JAVA/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.

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).

To exclude content types use the -e option when running the dumpdata command.

$./manage.py dumpdata -e contenttypes > initial_data.json


python manage.py dumpdata --exclude=contenttypes --exclude=auth.Permission > initial_data.json
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号