使用夹具将 django admin auth.groups 和用户迁移到新数据库
Posted
技术标签:
【中文标题】使用夹具将 django admin auth.groups 和用户迁移到新数据库【英文标题】:Migrating django admin auth.groups and users to a new database using fixtures 【发布时间】:2011-10-14 06:15:39 【问题描述】:这是场景:
我正在使用 django 的管理界面,我希望能够通过固定装置加载用户和组(如果可能的话)。我可以像这样转储用户/组:
manage.py dumpdata auth auth.group > usersandgroups.json
但是在将数据加载到全新的数据库中时...
manage.py loaddata <appname>/fixtures/usersandgroups.json
我遇到与外键等有关的各种错误。下面是一个例子:
django.db.utils.IntegrityError: insert or update on table "auth_permission" violates foreign key constraint "content_type_id_refs_id_728de91f"
DETAIL: Key (content_type_id)=(37) is not present in table "django_content_type".
如果有人能指出我正确的方向,我将不胜感激。提前致谢!
【问题讨论】:
【参考方案1】:您的转储中不仅包括用户和组,也包括权限。由于权限,您会遇到冲突。由于您不需要这些,只需将它们从您的固定装置中删除即可。
manage.py dumpdata auth.User auth.Group > usersandgroups.json
【讨论】:
不走运!这样做时我遇到了类似的错误:django.db.utils.IntegrityError: insert or update on table "auth_user_user_permissions" violates foreign key constraint "auth_user_user_permissions_permission_id_fkey" DETAIL: Key (permission_id)=(111) is not present in table "auth_permission".
实际上你确实帮助我指出了正确的方向!我从我的“原型”数据库中清除了所有权限(通过 django 的管理界面);以上述方式导出数据;然后将其加载到新数据库中而没有错误。谢谢!!以上是关于使用夹具将 django admin auth.groups 和用户迁移到新数据库的主要内容,如果未能解决你的问题,请参考以下文章
(Django)当我尝试将夹具文件加载到我的数据库中时,我不断收到字段冲突错误