Check

Миграции схемы данных и эволюция моделей

Python Senior Яндекс
Как вы подходите к эволюции моделей данных (ORM-сущности, Pydantic-схемы) без ломки обратной совместимости? Приведите пример soft-миграции поля.
Ответы
Эволюция схем
Подход: - сначала добавить новое поле с default/nullable; - поддерживать оба варианта (старое и новое имя) в коде/схемах; - мигрировать данные в фоне; - затем удалить старое поле. Пример soft-миграции API: ```python class UserIn(BaseModel): name: str | None = None full_name: str @root_validator(pre=True) def compat(cls, values): if 'full_name' not in values and 'name' in values: values['full_name'] = values['name'] return values ```