【发布时间】: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