10

私はに慣れていないので、電話する必要があるかどうか疑問に思っています

./manage.py syncdb

またはやって

./manage.py schemamigration appname --auto
./manage.py migrate appname

すべての場合において、Southは独自に処理できます。

4

2 に答える 2

21

南はプロジェクト全体ではありません。アプリワイドです。
南を使用するアプリもあれば、使用しないアプリもあります。

アプリが南に統合されている場合、データベースの変更を行うには、

./manage.py schemamigration appname --auto
./manage.py migrate appname

ただし、すべてのアプリが南に統合されているわけではありません。

南を使用しない新しいアプリをプロジェクトに追加するときは./manage.py syncdb、これらのアプリを呼び出す必要があります。(たとえば、django.contribアプリ)

つまり、./manage.py syncdbアプリが南を使用しない場合、および南に統合され./manage.py migrateたアプリに使用します。

于 2011-06-13T23:13:41.423 に答える
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)

これにより、Southが管理するアプリ(セクション)とmanage.py syncdbSouthが管理しないアプリ(セクション)を区別できることがわかります。また、を使用することを思い出させます。Not syncedSynced./manage.py migrate

重要な点は、を実行./manage.py schemamigration MyApp --initalして実行する./manage.py migrate MyApp 前に、Southに新しいアプリを管理させること./manage.py syncdbです。

于 2013-06-17T08:10:15.433 に答える