У меня есть сайт Django, который отлично работает. Он имеет небольшой объем данных в базе данных, которые я хочу использовать для тестирования. Я сделал dumpdata для создания нескольких .json-приспособлений. Но когда я пытаюсь запустить тест в своем приложении ( "tagger" ), я получаю сообщение Postgresql, и я не могу решить, как его решить:
(django-projectname)$ ./manage.py test tagger
Creating test database for alias 'default'...
Problem installing fixture '/Users/phil/Projects/RIG/projectname/django-projectname/projectname/tagger/fixtures/auth_testdata.json': Traceback (most recent call last):
File "/Users/phil/.virtualenvs/django-projectname/lib/python2.6/site-packages/django/core/management/commands/loaddata.py", line 174, in handle
obj.save(using=using)
File "/Users/phil/.virtualenvs/django-projectname/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 "/Users/phil/.virtualenvs/django-projectname/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 "/Users/phil/.virtualenvs/django-projectname/lib/python2.6/site-packages/django/db/models/query.py", line 491, in _update
return query.get_compiler(self.db).execute_sql(None)
File "/Users/phil/.virtualenvs/django-projectname/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 "/Users/phil/.virtualenvs/django-projectname/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 735, in execute_sql
cursor.execute(sql, params)
File "/Users/phil/.virtualenvs/django-projectname/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 44, in execute
return self.cursor.execute(query, args)
IntegrityError: duplicate key value violates unique constraint "auth_permission_content_type_id_codename_key"
DETAIL: Key (content_type_id, codename)=(3, add_htuser) already exists.
Я попытался сделать dumpdata для приложения auth, используя флаг --natural, но это ничего не изменило. Я в тупике и не могу понять, откуда он получает дублирующий ключ.
Класс "htuser", к которому он относится, является прокси-моделью в пользовательском классе auth.
Я использую South для миграции своих приложений, и это звучит так, как qaru.site/info/18841/... может быть ответом, но я не понимаю, как "Удалить явно заданные значения первичного ключа из данных datamigrations"?