Django数据备份与恢复、数据相互引用冲突解除

Django自带数据备份与恢复功能:
备份:python manage.py dumpdata appname>datafilename.json
恢复:python manage.py loaddata datafilename.json

数据是以APP为单位进行操作,通常需要按照依赖顺序导入,也就是先导入被依赖的APP model。但是由于数据库设计不佳,存在不同app的model相互引用(外键)的情况,那么在导入时,就会因为被依赖model不存在而无法导入。

django.db.utils.IntegrityError: Problem installing fixtures: 错误: 插入或更新表 "basedata_uploadfile" 违反外键约束 "basedata_uploadfile_user_id_2b50c62b_fk_staff_user_id"
DETAIL: 键值对(user_id)=(1)没有在表"staff_user"中出现.

解决办法:手工删除json文件中的依赖model部分,解除相互引用冲突,之后可正常导入。

教训:设计model时尽量避免不同app的model相互引用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Django教程 Python一直是我最喜欢的语言,在这个寒假打算认真学习一下Python的Web框架。在Djan...
    什么都值得阅读 5,351评论 5 19
  • 我无意拔越高度 凌空俯视弱小 把高贵的冠冕戴在头上 显示虚荣和骄傲 但我追逐太阳的高度 青山的俊秀
    大漠孤鹰_797b阅读 847评论 0 1
  • 姓名:鲍愚 日期:2019年5月6日 打卡 第 30天 身体实修: 早:静坐40分钟(114次) 中:一分钟呼吸...
    鲍愚阅读 2,675评论 0 0
  • ​ 2017,到了say goodbye的时候。 这一年忙忙碌碌,似乎沉甸甸的。 工作、生活、学习、运动、娱乐……...
    一玫艾姐阅读 3,868评论 0 50

友情链接更多精彩内容