South: создание миграции существующего приложения

Предположим, у Вас есть работающее приложение на Django, имеющее модели. Через какое-то время после запуска Вам потребовалось подключить к этому приложению South. Следуя инструкции создаем начальную миграцию:

./manage.py schemamigration southtut --initial

Эта команда создаст миграцию. После создания миграцию необходимо применить командой:

./manage.py migrate southtut

Если выполнить эту команду, то возникнет ошибка, вызванная тем, что таблицы приложения southtut уже были созданы ранее командой ./manage.py syncdb.

В этом случае можно выполнить следующую команду:

./manage.py migrate southtut --fake

Эта команда не будет производить миграцию, однако создаст видимость того, что миграция была произведена. Таким образом, все последующие миграции будут произведены успешно.

Подробнее про South можно почитать на Хабрахабре.