: Uses the natural_key() model method to serialize any foreign key and many-to-many relationship to objects of the type that defines the method.作用是导出的时候去除一些约束 , 导入时会自动处理 , 减少导入时因为表之间约束关系的问题
python3 manage.py dumpdata --natural-primary --natural-foreign -o db.json
解决方法二: 删除 content_type
数据另一种思路 , 把 migrate
过程产生的初始化数据删了 , 避免导入时和原有数据冲突
先进入 python shell
python3 manage.py shell
输入以下Python代码执行
from django.contrib.contenttypes.models import ContentTypeContentType.objects.all().delete()
报错2: 编码错误报错信息UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte in Django
解决方法一: 使用 Python 的 UTF8 模式(推荐)在导入命令前面加上 -Xutf8
参数
python -Xutf8 manage.py loaddata db.json
解决方案二: 魔改 Django 代码
能用 , 但不推荐 , 实在没办法再来试这个方法修改文件
lib\site-packages\django\core\serializers\json.py
在 Deserializer
方法中找到这行代码stream_or_string = stream_or_string.decode()
改成这样stream_or_string = stream_or_string.decode('UTF-16')
再进行导入操作参考资料
- https://docs.djangoproject.com/en/4.1/ref/django-admin/
- https://www.shubhamdipt.com/blog/django-transfer-data-from-sqlite-to-another-database/
- https://javaatpoint.com/solved-unicodedecodeerror-utf-8-codec-cant-decode-byte-0xff-in-position-0-invalid-start-byte/
- https://counter2015.com/2020/01/15/django-migration-sqlite-to-postgre/
- https://stackoverflow.com/questions/64457733/django-dumpdata-fails-on-special-characters
经验总结扩展阅读
- iPhone15将被强制使用USB-C 你支持更换USB-C吗
- MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选
- Django的简单使用
- rabbitmq docker安装消息队列及数据库(mongo、mysql)
- 华为watch3pronew怎么更换表带 华为watch3pronew更换表带操作方法
- 如何更换彩铃铃声(6元彩铃怎么退订)
- 双层玻璃门碎了一面怎么更换
- 无期迷途监管对象怎么更换
- 地漏怎么更换?
- django-environ学习