Нужно ли вызывать syncdb до или после перехода на юг - PullRequest
10 голосов
/ 14 июня 2011

Я новичок в Юг , поэтому мне интересно, нужно ли мне когда-либо звонить

./manage.py syncdb

или делает

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

достаточно во всех случаях. Юг может справиться самостоятельно .

Ответы [ 2 ]

21 голосов
/ 14 июня 2011

Юг не является широким проектом. Это приложение широко.
Некоторые приложения используют юг, некоторые приложения не используют его.

если приложение интегрировано на юг, для внесения изменений в БД вы будете использовать

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

но не все приложения интегрированы с югом.

Когда вы добавляете новое приложение, которое не использует юг, в ваш проект, вам нужно позвонить ./manage.py syncdb для этих приложений. (Например, django.contrib приложения)

Короче говоря, используйте ./manage.py syncdb, когда приложение не использует юг, а ./manage.py migrate для интегрированный юг приложения.

8 голосов
/ 17 июня 2013

Когда вы создаете или устанавливаете новое приложение 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 может различать приложения, управляемые Югом (раздел Not synced), и приложения, не управляемые Югом (раздел Synced).Также напоминается, что вы должны использовать ./manage.py migrate.

Важный момент - позволить South управлять новым приложением, выполнив ./manage.py schemamigration MyApp --inital и ./manage.py migrate MyApp до выполнения ../manage.py syncdb.

...