Часто при разработке приложений django модели меняются и, следовательно, добавляются миграции. ИМХО хорошая практика заключается в том, чтобы новый код, предназначенный для новой схемы базы данных, также был совместим со старой схемой, возможно, не отображая новых функций.указать глубину обратной совместимости миграции в приложениях или проектах (django)
Например, если вы добавляете функцию включения ограничивающего прямоугольника для фотографии профиля, этой функции нет, если в соответствующей таблице нет полей для этой ограничивающей рамки. Такая грациозная деградация может поддерживать работу веб-сайта, хотя не все миграции были выполнены еще.
Это устраняет некоторые проблемы при обновлении живого развертывания. Распределенные веб-узлы могут обновляться по одному, а миграция выполняется в конце.
Тем не менее, изящная деградация может зайти так далеко, в какой-то момент бремя бесконечной обратной сопоставимости слишком сильно истощает ресурсы развития. Однако системные администраторы не могут быть осведомлены о том, насколько большой может быть этот разрыв кода миграции, и вербальная коммуникация может легко зашуметь. И через неделю разработчик, возможно, забыл, как миграция обратно совместима с некоторыми версиями.
Это заставляет задуматься, может ли приложение или проект указать, с какой миграцией он совместим?
Если нет, то что хорошего порядка обновления n веб-узлов и одной базы данных?
Такая спецификация позволит обновлениям сообщать о совместимости базы данных или наоборот, возможно, также, есть ли устаревшие веб-узлы при миграции базы данных.