В чем разница между syncdb и migrate?

Я просматриваю документацию по django. И здесь у меня есть ситуация. В одной из документации мне сказали сделать

python manage.py migrate

И в другом

python manage.py syncdb

Я не могу сделать первый (ошибка: не найдена команда миграции), но второй работает отлично для меня. Это проблема с версией или мне нужно позаботиться о чем-то еще.

Ответы

Ответ 1

Команда migrate принадлежит к приложению юг (http://south.aeracode.org/).

С веб-сайта:

Это южные, интеллектуальные схемы и миграции данных для проектов Django.

До Django == 1.7 вам нужно было установить стороннее приложение для выполнения миграции базы данных.

См. документацию на readthedocs

Ответ 2

Команда migrate является новой в предстоящем Django 1.7, который еще не выпущен.

Для более ранних версий вы можете использовать syncdb или внешнее приложение South.

Когда вы читаете документацию, используйте переключатель версии документации, чтобы выбрать нужную версию.

Например, текущий 1.6 учебник использует syncdb, но dev-учебник (написан для в приближающемся 1.7) используется migrate.

Ответ 3

Это зависит от версии документации, которую вы читаете. migrate - это команда South, которая до последней версии (в настоящее время разработки или dev) django была отдельным приложением. Наконец, он интегрируется в Django (в принципе, каждый проект django использует его в любом случае, конечно, так что это стоит прочитать).

В правом нижнем углу страницы документации django есть селектор, в котором вы можете переключаться между различными версиями Django, поэтому, если вы ищете информацию для своего проекта, это хорошая идея, чтобы перейти на версию Django you в настоящее время используется.