2017-10-17 195 views
2

陷我有,当我试图让python manage.py migrate它的如下给这个错误的数据库:django.db.utils.IntegrityError:重复键值违反唯一约束“auth_permission_pkey”

django.db.utils.IntegrityError: duplicate key value violates unique constraint "auth_permission_pkey" 
DETAIL: Key (id)=(241) already exists. 

以下是整个错误:

Operations to perform: 
    Apply all migrations: admin, auth, companyapp, contenttypes, djcelery, kombu_transport_django, loginapp, projectmanagement, recruitmentproject, sessions, smallproject 
Running migrations: 
    No migrations to apply. 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute 
    output = self.handle(*args, **options) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 227, in handle 
    self.verbosity, self.interactive, connection.alias, apps=post_migrate_apps, plan=plan, 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/core/management/sql.py", line 53, in emit_post_migrate_signal 
    **kwargs 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 193, in send 
    for receiver in self._live_receivers(sender) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 83, in create_permissions 
    Permission.objects.using(using).bulk_create(perms) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/models/query.py", line 443, in bulk_create 
    ids = self._batched_insert(objs_without_pk, fields, batch_size) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/models/query.py", line 1080, in _batched_insert 
    inserted_id = self._insert(item, fields=fields, using=self.db, return_id=True) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/models/query.py", line 1063, in _insert 
    return query.get_compiler(using=using).execute_sql(return_id) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1099, in execute_sql 
    cursor.execute(sql, params) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/backends/utils.py", line 80, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute 
    return self.cursor.execute(sql, params) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/home/ubuntu/.local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute 
    return self.cursor.execute(sql, params) 
django.db.utils.IntegrityError: duplicate key value violates unique constraint "auth_permission_pkey" 
DETAIL: Key (id)=(241) already exists. 
+0

请发布导致问题的迁移内容。 –

+0

有两种可能的原因。也许这个迁移只添加了一个'unique = True'参数(rob的答案已经足够了),或者唯一的字段是必需的。 (不允许'null = True')我可以写一个答案在后者(特殊)情况下。 – hynekcer

+0

已解决类似问题https://stackoverflow.com/a/11093322/5378183 – Mariah

回答

0

没有太多的其他方面,看起来你已经添加了一个唯一约束到模型,但你必须在你的数据库违反此约束行,因此迁移失败。所以,在你的数据库中,你有两行auth_permission_pkey == 241

您需要删除或更改此行,以便它是唯一的,并重新运行您的迁移。

相关问题