我是南方的新手,所以我想知道是否需要打电话
./manage.py syncdb
或做
./manage.py schemamigration appname --auto
./manage.py migrate appname
在South 可以自己处理的所有情况下就足够了。
我是南方的新手,所以我想知道是否需要打电话
./manage.py syncdb
或做
./manage.py schemamigration appname --auto
./manage.py migrate appname
在South 可以自己处理的所有情况下就足够了。
南部不是项目范围。它是应用程序范围内的。
有些应用程序使用南,有些应用程序不使用它。
如果一个应用程序被集成到南方,做数据库更改,你将使用
./manage.py schemamigration appname --auto
./manage.py migrate appname
但并非所有应用程序都与南方集成。
当您将不使用 south 的新应用程序添加到您的项目时,您需要调用./manage.py syncdb
这些应用程序。(例如,django.contrib
应用程序)
简而言之,./manage.py syncdb
当应用程序不使用南时使用,以及./manage.py migrate
南集成应用程序。
当您创建或安装新的应用程序 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
section) 管理的应用程序和那些不由 South (section)管理的应用程序Synced
。它还提醒您使用./manage.py migrate
.
重要的一点是让 South 通过执行./manage.py schemamigration MyApp --inital
和./manage.py migrate MyApp
在执行之前管理一个新的应用程序./manage.py syncdb
。