Python приложения могут работать с самыми различными БД (Postgres, SQLite, MariaDB и др.) и перед разработчиками приложений возникает задача реализовать возможность легко и безопасно изменять состояние БД: как структуры так и самих данных, от версии к версии приложения.
В докладе я поделюсь опытом использования хорошо зарекомендовавшего себя инструмента для управления миграциями - alembic.
Расскажу, почему стоит остановить свой выбор именно на нем, как с его помощью подготовить миграции, как их запускать (автоматически или вручную), зачем тестировать, какие проблемы могут выявить тесты и как эти тесты реализовать.
Мы рассмотрим проблемы необратимых изменений в миграциях, а также несколько лайфхаков alembic, которые сделают работу с миграциями легкой и приятной.