Это возможно, и я сам делал это несколько раз. У вас есть два метода:
1) Это самый простой и предпочтительный метод. Просто откатите вашу базу данных разработчиков до первой миграции, которую вы хотите включить в «сквош», затем удалите все миграции с этой. Наконец, повторно запустите команду управления схемами миграции. Вы получите все необходимые миграции в одном файле.
2) Если по какой-то причине вы не можете сделать № 1, это все еще технически возможно, но будет гораздо более требовательным к процедуре. Буквально скопируйте и вставьте содержимое прямого и обратного методов каждой миграции в один файл миграции (ваш файл с наименьшим номером). Эта часть достаточно проста, но вам также придется вручную вносить изменения в замороженные модели в нижней части файла. Я обнаружил, что лучший способ - просто попытаться запустить эту новую миграцию. Скорее всего, вы получите ошибки о том, что такая-то модель не имеет таких-то атрибутов. Это сигнал для добавления этого поля в замороженную модель. Когда миграция проходит без ошибок, вы золотой.
Примечание. Помните, что при удалении этих старых файлов миграции удаляйте их, используя любую систему управления версиями, которую вы используете. Другими словами, используйте git rm
или svn rm
и т. Д. Если вы столкнетесь с этими старыми миграциями, помеченными в вашем выпуске, вы заблокируете свой производственный экземпляр. Со своей стороны, я никогда не совершаю миграцию, пока не буду готов отпустить свои изменения. Вы всегда можете восстановить миграцию, если потеряете ее.