繁体   English   中英

Django 1.9 加载数据错误

[英]Django 1.9 loaddata errors

ubuntu 15.10 venv python 3.4/django 1.9

命令:

python manage.py loaddata flight_data.json(yaml)

错误:

json: django.core.serializers.base.DeserializationError: 安装夹具时出现问题 '/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.json': 'model'

yaml:django.core.serializers.base.DeserializationError:安装夹具“/home/nerdbox2/django_/logbook/flights/fixtures/flight_data.yaml”时出现问题:“模型”

在尝试了几个 csv->model 包并且没有运气之后,我决定根据 Django Docs 使用 csv-json 和 csv-yaml 的在线转换器,但仍然没有运气。 我有 ~2100 条记录来填充数据库。

是的,我是个菜鸟,但在过去的 3 天里我真的把它打败了!

任何帮助将不胜感激!

下面评论中的模型、json 和 yaml

有时,应用程序中的某些模型可能会导致序列化失败。一旦您运行 dumpdata 命令,Django 会将此类模型指示为警告。 确保使用以下命令排除此类模型(或在某些情况下排除整个应用程序):

./manage.py dumpdata --exclude auth.permission > db.json

在这里,我们认为 auth.permission 是您需要删除的表。

如果您使用数据库转储来加载新数据库(在另一个 django 项目中),它可能会导致 IntegrityError(如果您在同一个数据库中加载数据,它可以正常工作)

要解决此问题,请确保通过排除 contenttypes 和 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

如果您已转储数据库,但不包括权限和内容类型,则您需要检查 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 个键: pkmodelfields (其余内容都在其中)。

该页面中有一个链接指向JSON 序列化格式 102,它提供了更正式和完整的规范。

2#如果您使用的是自然键,我遇到的常见异常是因为自然键

你最了解的自然键

3# 相同的迁移实例(阶段)用于快速指南Stackoverflow

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM