Возможно, есть несколько решений, но один из способов сделать это - отделить «модель» от миграций.
Держите модель в актуальном состоянии. Отредактируйте это свободно во время разработки, чтобы получить желаемую функциональность. Но прежде чем приступить к редактированию, сначала сделайте копию и отложите ее в сторону (проницательные читатели, вероятно, называют этот источник контроля).
Как только вы обнаружите окончательную версию новой функции, которую вы реализуете, и у вас есть хорошее представление о том, какие функции вам нужно добавить в сценарий миграции, откройте старую версию модели и обрежьте это касается только таблиц, которые вы пытаетесь изменить. Включите урезанные модели в сам скрипт миграции.
Другой вариант - сильно полагаться на отражение таблицы в модуле основных моделей. Скрипты миграции вообще не взаимодействуют с ними, вместо этого они полностью описывают таблицы, которые они переносят внутри каждого скрипта. Это дает преимущество в том, что модели (в основном) работают хорошо на любой версии схемы, на которой вы можете работать. Недостатком является то, что полное отражение схемы замедлит запуск приложения, иногда значительно.