【问题标题】:South 0.8.3 upgrade causes DeserializationError南 0.8.3 升级导致 DeserializationError
【发布时间】:2013-11-19 03:22:32
【问题描述】:

我有一个使用 South 0.8.2 的 Django 1.5.5 项目。一切都很好——包括使用南方的迁移。当我尝试将此项目升级到 South 0.8.3 时,运行python manage.py migrate 时出现以下错误:

(VBEZ)vagrant@vagrant-ubuntu-precise-64:/vagrant$ python manage.py migrate
Running migrations for django_mailbox:
- Nothing to migrate.
 - Loading initial data for django_mailbox.
Installed 3 object(s) from 1 fixture(s)
Running migrations for djcelery:
- Nothing to migrate.
 - Loading initial data for djcelery.
DeserializationError: Problem installing fixture 'initial_data.json': Invalid model identifier: 'sites.site'

发生了什么?

这是我的initial_data.json 文件:

[
  {
    "pk": 1, 
    "model": "sites.site", 
    "fields": {
      "domain": "0.0.0.0:5000", 
      "name": "Project (Development)"
    }
  }, 
  {
    "pk": 2, 
    "model": "sites.site", 
    "fields": {
      "domain": "project-staging.example.com", 
      "name": "Project (Staging)"
    }
  }, 
  {
    "pk": 3, 
    "model": "sites.site", 
    "fields": {
      "domain": "project.example.com", 
      "name": "Project"
    }
  }
]

以下是使用 South 0.8.2 成功迁移的样子:

Running migrations for django_mailbox:
- Nothing to migrate.
 - Loading initial data for django_mailbox.
Installed 3 object(s) from 1 fixture(s)
Running migrations for djcelery:
- Nothing to migrate.
 - Loading initial data for djcelery.
Installed 3 object(s) from 1 fixture(s)
Running migrations for taggit:
- Nothing to migrate.
 - Loading initial data for taggit.
Installed 3 object(s) from 1 fixture(s)
Running migrations for eee_core:
- Nothing to migrate.
 - Loading initial data for eee_core.
Installed 3 object(s) from 1 fixture(s)
Running migrations for core:
- Nothing to migrate.
 - Loading initial data for core.
Installed 3 object(s) from 1 fixture(s)

我看过/尝试过的事情:

  • django-contrib-sites 在我的“INSTALLED_APPS”中
  • 如果删除 initial_data.json 文件,迁移工作正常。
  • 如果我单独运行迁移,它们运行良好。示例python manage.py migrate myapp
  • 我已提交工单:http://south.aeracode.org/ticket/1324

谢谢。

【问题讨论】:

  • 同样的问题,但如果我迁移一个单独的应用程序,它会加载初始数据。试试:python manage.py migrate django_mailbox
  • 是的,如果我单独运行迁移,它确实有效。但在 0.8.2 下,我不必这样做。这还要求我知道我的哪些 3 方应用程序需要迁移——这不是一个好的长期维护解决方案。

标签: django django-south


【解决方案1】:

看起来这是 South 0.8.3 中的一个已知错误:http://south.aeracode.org/ticket/1320。预计一周左右会修复。

更新:South 0.8.4 修复了这个错误。

【讨论】:

  • 谢谢!谢谢!谢谢!我刚开始使用南,它让我发疯......
猜你喜欢
  • 1970-01-01
  • 2011-02-26
  • 2014-05-21
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
  • 2012-04-24
相关资源
最近更新 更多