- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
my_auth.json --natural --e-6ren">
数据库是MySQL。
我使用的是 django.contrib.auth。
这里是所有的信息:
manage.py dumpdata auth > my_auth.json --natural --exclude contenttypes
然后我删除了整个数据库(drop database my_database),并创建了一个新数据库(create database new_database)(使用./manage.py syncdb创建所有表)。
然后
manage.py loaddata my_auth.json
我遇到了一个错误:
IntegrityError: (1062, "Duplicate entry '3-add_author' for key 2")
有什么问题?
任何帮助将不胜感激。谢谢!
最佳答案
你是对的(请在下面回复你的评论)。问题确实出在 auth.permission
上。
当您运行 syncdb
时,auth.permission
是 populated automatically with default values for all installed models . syncdb
的任何后续运行都将为最近添加的任何模型添加新条目。
如果在稍后阶段您重置数据库并再次运行 syncdb
,这些值将被重新填充,并且根据检查已安装模型的顺序,相关权限可能会添加到不同的位置order 为它提供与您以前的数据库不同的 ID(如果模型是分阶段安装的)。
为避免此问题,您可以在转储您的 auth
数据时将 auth.permission
排除在外(正如您已经在评论中指出的那样),或者重新设置加载数据转储之前的 auth.permission
表。
此外,使用 natural keys 也很重要(--natural
) 转储数据时,这样它就不会使用其整数 id 引用相关数据(在另一个数据库中加载时可能不相同)。此功能是 introduced in Django 1.2 .
关于django - IntegrityError : (1062, "Duplicate entry ' 3-add_author' for key 2"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384689/
数据库是MySQL。 我使用的是 django.contrib.auth。 这里是所有的信息: manage.py dumpdata auth > my_auth.json --natural --e
我是一名优秀的程序员,十分优秀!