Как автоматизировать южную миграцию в установочном скрипте - PullRequest
1 голос
/ 12 июля 2011

У меня есть проект Django, использующий South, который включает в себя скрипт установки.Что я хотел бы сделать, так это иметь несколько строк кода в этом скрипте установки, которые позаботятся об установке и синхронизации моей базы данных с моим последним кодом, чтобы новые установки проекта могли легко настроить свою базу данных.

Я мог бы запустить ...

python manage.py migrate --fake 0010 appname1
python manage.py migrate --fake 0004 appname2

... но я не могу вставить это в скрипт установки, потому что (1) я не знаю номер миграции заранее, и (2Я бы предпочел не обновлять скрипт установки с именами приложений.

Мне нужно что-то вроде:

python manage.py migrate --fake --allmigrations --allapps

Есть ли для этого хитрость?

1 Ответ

3 голосов
/ 12 июля 2011

Вообще говоря, вы не должны использовать --fake во время развертывания. Fake означает, что он на самом деле не запускает миграцию, и если в вашем сценарии использования указано, что вы всегда будете использовать --fake (потому что вы выполняете миграции вручную), то почему вы пытаетесь вставить их в сценарий развертывания? на все.

Это сказал. Если вы намерены запустить миграцию с помощью сценария развертывания, это будет относительно тривиально. Просто запустите manage.py migrate. Нет имен приложений, не номера миграции. Вы можете даже выполнить manage.py migrate --fake, и он будет фальсифицировать миграцию всех миграций для всех приложений. Реальный вопрос, если вы сделаете это, хотя, почему, черт возьми, вы бы беспокоиться.

...