В последней версии Django (2.2), когда я добавляю новое поле в модель, подобную этой:
new_field= models.BooleanField(default=False)
Django запускает следующие команды для MySQL:
ALTER TABLE `app_mymodel` ADD COLUMN `new_field` bool DEFAULT b'0' NOT NULL;
ALTER TABLE `app_mymodel` ALTER COLUMN `new_field` DROP DEFAULT;
COMMIT;
Покаэто работает, когда все обновляется, это очень проблематично, потому что старые версии приложения больше не могут создавать модели после запуска этой миграции (они не знают о new_field
).Почему бы просто не сохранить ограничение DEFAULT
?