没有找到迁移设备,但表没有使用Django和South更新

时间:2011-10-09 23:01:17

标签: python django migration django-south

尝试更新我的应用,使其具有管理页面,以便运行syncdb:

tyre77$ python manage.py syncdb
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.staticfiles
 > south
 > django.contrib.admin

Not synced (use migrations):
 - OmniCloud_App
(use ./manage.py migrate to migrate these)

所以没关系!南方安装,所以我们只是做一点迁移:

tyre77$ python manage.py migrate
Running migrations for OmniCloud_App:
- Nothing to migrate.
 - Loading initial data for OmniCloud_App.
No fixtures found

等什么?你刚刚告诉我迁移,所以我做了,但没有找到固定装置,所以它没有修复应用程序没有被同步!

1 个答案:

答案 0 :(得分:2)

“找不到固定装置”。与南方无关。 South仅在尝试执行架构/数据迁移后重新加载夹具数据。根据您的输出,您似乎已经处于最新版本的迁移中。

在这种情况下,它正在寻找的夹具是:initial_data.[xml/yaml/json]。这也是运行syncdb时将加载的相同夹具。

例如,当我尝试迁移我的应用程序时:

python manage.py migrate
Running migrations for home:
 - Migrating forwards to 0001_initial.
 > home:0001_initial
 - Loading initial data for home.
No fixtures found.

但是,如果我提供initial_data.json,它将在执行迁移后加载此装置。

使用南

根据您的问题,听起来您可能没有为django应用生成任何迁移。您可以从运行以下命令开始:

python manage.py schemamigration OmniCloud_App --initial

此命令将生成一个名为0001_initial.py的文件。当您运行python manage.py migrate时,它将针对您的数据库运行此迁移。