2015-09-19 2 views
1

Я использую Django 1.8.4. Поскольку мой проект все еще находится в разработке, я часто удаляю все сценарии миграции и повторно запускаю makemigrations для генерации начальных сценариев миграции.
Найден makemigrations создаст два сценария миграции для одного из моих приложений, в то время как другие приложения имеют только 0001_initial.py. Было бы что-то вроде:Django makemigrations app app

- 0001_initial.py 
- 0002_auto_20150919_1645.py 

Я проверил, содержание 0002_auto_20150919_1645.py, он добавлял иностранное поле от модели другого приложения.
Я предполагаю, что это может быть связано с порядком создания миграции для приложений. Поэтому я удаляю эти два сценария миграции этого приложения, а затем снова запускаю makemigrations. Теперь у меня есть только один сценарий миграции для этого приложения.

Мои вопросы: Есть ли способ управлять заказами makemigrations создавать миграции для приложений?

К примеру, у меня есть два приложения, app1 и app2 и app1 зависит от app2. Возможно ли создать makemigrations для миграции на app2, а затем app1?

ответ

2

Вы можете вручную выполнить миграцию для отдельного приложения.

./manage.py makemigrations app2 
./manage.py makemigrations app1 
./manage.py makemigrations # migrate the rest of your apps 

Вы могли бы также squash существующие миграции.

+0

Спасибо за ваш ответ, это хорошее решение для моей ситуации, в то время как './manage.py migrate' должно быть' ./manage.py makemigrations'. Просто интересно, имеет ли Django какую-либо конфигурацию для управления этим заказом вместо ручного запуска 'makemigrations' для приложений. –

+0

Упс! Исправлено. – Alasdair