Документация squa sh довольно ясна в этом, подчеркиваю мое:
Эти файлы помечены так, что они заменяют ранее сжатые миграции, поэтому они могут сосуществуют со старыми файлами миграции, и Django будет интеллектуально переключаться между ними в зависимости от того, где вы находитесь в истории. Если вы все еще на полпути через набор миграций, которые вы раздавили, он будет продолжать использовать их, пока не достигнет конца, а затем переключится на сжатую историю, в то время как новые установки будут использовать новую сжатую миграцию и пропустить все старые .
Это позволяет вам набирать sh и не портить системы, которые в настоящее время находятся в производстве, которые еще не полностью обновлены. Рекомендованный процесс: очистить sh, сохранить старые файлы, зафиксировать и выпустить, дождаться обновления всех систем до нового выпуска (или, если вы сторонний проект, убедитесь, что ваши пользователи обновляют выпуски в Порядок без пропусков), а затем удалите старые файлы, зафиксируйте и сделайте второй выпуск.
Поэтому сохраняйте не сжатые файлы, пока все среды не будут обновлены и перенесены, а затем удалите им.