2016-07-08 3 views
2

По мере роста проекта, миграции (как makemigrations и migrate) займет больше времени и больше затягивает довольно много каждый развертывание. Django давайте вам squash them так что вы не имеете длинный список файлов миграции, но все еще, миграции принимают одинаковое количество времениСбросить длинные Джанго миграций

Тогда я попробовал следующее:.

  1. Удалить все файлы миграция в моем приложении
  2. Очищает django_migrations таблицы в БД
  3. Run makemigrations (чтобы создать 0001_initial для моего приложения)
  4. Run migrate --fake (для заполнения в django_migrations таблицу)

Теперь новые миграционные действительно быстро за счет потери истории миграции.

Итак, мой вопрос заключается в том, что это может быть как v1.0, и это автономный проект, от которого зависит любой другой проект, Каковы риски для этого?

У меня такое ощущение, что это не должно быть сделано, поскольку я не мог найти какую-либо конкретную команду Django для этого. South имеет сброс, но теперь Джанго Миграция имеет только кабачки ...

+1

Это не будет проблемой, если вы действительно не обеспокоены обратными миграциями. – karthikr

ответ

0

Пока все ваших установок были до момента, когда вы удалили миграции, нет никакого вреда для удаления старых миграций. Единственным недостатком является то, что вы не можете вернуться в историческое состояние базы данных легко, как только вы их удалили, но, за исключением старого файла резервных копий, вы не должны его использовать.

Как я уже указывал, просто убедитесь, что все, кто использует ваш проект, обновлены до (или дают им указания, такие как фиксация до удаления, чтобы они могли выполнять миграции перед обновлением до HEAD, если вы используете элемент управления исходной версией).

Если вы разрабатываете стороннее приложение, это сделает установку более сложной (имея дело с аргументом --fake, будь вы обновляете или устанавливаете ...), но это не ваш случай.

Смежные вопросы