【问题标题】:Django Postgres DeserializationError: Problem installing fixtureDjango Postgres DeserializationError:安装夹具时出现问题
【发布时间】:2019-03-16 01:44:57
【问题描述】:

我正在尝试将我的开发数据库装置导入我的生产服务器。迁移已经完成,我尝试将数据库迁移精简到只有两个类。这是我收到的命令和错误:

错误

(env) root@django-01:/home/projects/server/mysite# python3 local.py loaddata db.json
Traceback (most recent call last):
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/serializers/json.py", line 68, in Deserializer
    objects = json.loads(stream_or_string)
  File "/usr/lib/python3.5/json/__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.5/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.5/json/decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 19 column 1 (char 229)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "local.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/commands/loaddata.py", line 72, in handle
    self.loaddata(fixture_labels)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/commands/loaddata.py", line 113, in loaddata
    self.load_label(fixture_label)
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/management/commands/loaddata.py", line 168, in load_label
    for obj in objects:
  File "/home/projects/server/env/lib/python3.5/site-packages/django/core/serializers/json.py", line 73, in Deserializer
    raise DeserializationError() from exc
django.core.serializers.base.DeserializationError: Problem installing fixture '/home/projects/server/mysite/db.json': 

db.json

    [

{
    "model": "memberships.benefit",
    "pk": 1,
    "fields": {
        "name": "SSL Certificate"
    }
},
{
    "model": "memberships.benefit",
    "pk": 2,
    "fields": {
        "name": "No cancellation fee"
    }
},


]

【问题讨论】:

    标签: django database postgresql


    【解决方案1】:

    您需要使用正确的 json 格式,从您的 json 中删除最后一个 (,)

    [
      {
        "model": "memberships.benefit",
        "pk": 1,
        "fields": {
          "name": "SSL Certificate"
        }
      },
      {
        "model": "memberships.benefit",
        "pk": 2,
        "fields": {
          "name": "No cancellation fee"
        }
      }
    ]
    

    参考this

    希望对你有帮助

    【讨论】:

    • 啊,为什么我的 dumpdata commpand 添加了额外的,
    猜你喜欢
    • 2019-02-27
    • 2012-09-02
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多