Карточка Senior Миграции спрашивают часто обновлено
Схема expand и contract
Вопрос
Что такое expand/contract при изменении схемы?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Изменение в несколько релизов: сначала расширяем схему (новые колонки и таблицы, совместимые со старым кодом), выкатываем код, переносим данные, переключаем код на новое, и только потом отдельным релизом удаляем старое.
Ответ
Изменение в несколько релизов: сначала расширяем схему (новые колонки и таблицы, совместимые со старым кодом), выкатываем код, переносим данные, переключаем код на новое, и только потом отдельным релизом удаляем старое.
Разбор
Так схема на каждом шаге совместима и с текущей, и с предыдущей версией кода, что нужно для rolling deploy и быстрого отката.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Миграции»
- Ограничения autogenerate в Alembic
- Порядок применения миграций по зависимостям
- Разбить перенос данных на пачки по id
- Конфликт миграций после слияния веток
- Создание индекса на большой таблице
- Почему apps.get_model в миграции данных
- Миграция встала в очередь за долгой транзакцией
- makemigrations и migrate