命令:
python manage.py loaddata flight_data.json(yaml)
错误:
json:django.core.serializers.base.DeserializationError:问题 安装夹具 '/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.json': '模型'
yaml:django.core.serializers.base.DeserializationError:问题 安装夹具 '/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.yaml': '模型'
在尝试了几个csv->模型包并且没有运气之后,我决定根据Django Docs为csv-json和csv-yaml使用在线转换器,但仍然没有运气。我有~2100条记录来填充db。
是的,我是一个菜鸟,但过去3天我真的被打死了!任何帮助将不胜感激!
模型,json和yaml在下面的评论中
答案 0 :(得分:2)
有时,应用程序中的某些模型可能会导致序列化失败。一旦运行dumpdata命令,Django就会将这些模型指示为警告。确保使用以下命令排除此类模型(或某些情况下整个应用程序):
./manage.py dumpdata --exclude auth.permission > db.json
在这里,我们认为auth.permission是您需要删除的表。
如果您使用数据库转储来加载新的数据库(在另一个django项目中),则可能导致IntegrityError(如果您在同一数据库中加载数据,则可以正常工作)
要解决此问题,请确保通过排除内容类型和auth.permissions表来备份数据库:
./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
现在您可以对新的数据库使用loaddata命令
./manage.py loaddata db.json
来源:https://coderwall.com/p/mvsoyg/django-dumpdata-and-loaddata
答案 1 :(得分:0)
如果您已转储数据库,但不包括权限和内容类型,则您需要检查 3 个主要内容:
1# 查看您的转储 json 是否是与 django 序列化相应的正确键和值,例如:
[
{
"model": "myDev.person",
"pk": 1,
"fields": {
"first_name": "anjan",
"last_name": "thakuri"
}
},
{
"model": "myDev.person",
"pk": 2,
"fields": {
"first_name": "Swikriti",
"last_name": "Thakuri"
}
}
]
确保您有这样的格式,其中包括 3 个键:pk、model 和 fields(其余的都是里面)。
该页面中有一个链接指向 JSON Serialization 格式 102,它提供了更正式和完整的规范。
2# 如果您使用的是自然键,我遇到的常见异常是因为 natural key。
您最了解natural key
3# 快速指南的相同迁移实例(阶段)Stackoverflow