我是South的新手,所以我想知道是否需要致电
./manage.py syncdb
或正在做
./manage.py schemamigration appname --auto
./manage.py migrate appname
所有cases South can handle on its own 都足够了。
答案 0 :(得分:21)
南方不是项目范围。它适用范围广。
有些应用程序使用南方,有些应用程序不使用它。
如果应用程序集成在南方,要进行数据库更改,您将使用
./manage.py schemamigration appname --auto
./manage.py migrate appname
但并非所有应用都与南方集成。
当您向项目中添加不使用南方的新应用时,您需要为这些应用调用./manage.py syncdb
。 (例如,django.contrib
个应用)
简而言之,当应用不使用南方时,使用 ./manage.py syncdb
, ./manage.py migrate
用于< strong>南方综合应用。
答案 1 :(得分:8)
创建或安装新应用程序MyApp时,应首先执行以下命令:
./manage.py schemamigration MyApp --inital
./manage.py migrate MyApp
在您执行./manage.py syncdb
之后,您会看到:
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
Synced:
> south
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> django.contrib.sites
> django.contrib.messages
> django.contrib.staticfiles
> django.contrib.admin
> django.contrib.admindocs
Not synced (use migrations):
- MyApp
(use ./manage.py migrate to migrate these)
您可以看到manage.py syncdb
能够区分由South(Not synced
部分)管理的应用和非南部管理的应用(Synced
部分)。它还提醒您使用./manage.py migrate
。
重点是让South在执行./manage.py schemamigration MyApp --inital
之前执行./manage.py migrate MyApp
和./manage.py syncdb
来管理新应用。< / p>