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

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

python manage.py migrate

А в другом

python manage.py syncdb

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


person Nabin    schedule 28.01.2014    source источник
comment
не могли бы вы поделиться ссылкой на документацию, о которой вы говорите?   -  person user2245644    schedule 28.01.2014
comment
docs.djangoproject.com/en/1.6/intro/tutorial01   -  person Nabin    schedule 28.01.2014


Ответы (3)


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

С сайта:

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

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

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

person wendy_winter    schedule 28.01.2014

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

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

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

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

person Alasdair    schedule 28.01.2014
comment
Спасибо !! Я тратил на это время. Можете ли вы рассказать мне немного о юге ?? pip install south в virtualenv получит пакет?? - person Nabin; 28.01.2014
comment
и да, я попытался установить последнюю версию, выполнив pip install django==1.7.. я не смог этого сделать.. Можете ли вы мне это тоже объяснить?? - person Nabin; 28.01.2014
comment
южные документы лучше любого комментария, который я могу здесь написать. Если вы застряли, задайте другой вопрос. - person Alasdair; 28.01.2014
comment
а что с установкой? пип установить юг? - person Nabin; 28.01.2014
comment
django 1.7 еще не выпущен. Он находится в стадии разработки. Вы можете установить его, но я бы не рекомендовал его, так как он не так стабилен, как 1.6, и может быть изменен. - person ptr; 28.01.2014
comment
любая рекомендуемая версия? @Аласдер - person Nabin; 28.01.2014
comment
Да, pip install south будет работать. Я согласен с советом Пита придерживаться самой последней версии, на данный момент 1.6. - person Alasdair; 28.01.2014
comment
pip install South в любом случае вы получите последнюю стабильную версию South (0.8.4), поэтому вам не нужно указывать версию - person ptr; 28.01.2014

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

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

person ptr    schedule 28.01.2014