SQL или кода. Миграции позволяют эволюционировать схему вместе с приложением и безопасно применять изменения на разных окружениях.
Что такое миграция базы данных?
Подробный ответ
Определение
Миграция базы данных — это изменение схемы БД (таблиц, столбцов, индексов, ограничений), оформленное как отдельный версионируемый шаг. Обычно это файл со скриптом SQL (например, ALTER TABLE, CREATE TABLE, CREATE INDEX) или Python‑скрипт, который выполняет те же команды.
Примеры миграций:
добавить новую таблицу
ordersчерезCREATE TABLE orders (...);добавить столбец
statusв таблицуusersкомандойALTER TABLE users ADD COLUMN status TEXT DEFAULT 'active';создать индекс
CREATE INDEX idx_users_email ON users(email).
Зачем нужны миграции
поддерживать схему БД в синхроне с кодом — каждая версия приложения знает, какие миграции должны быть применены;
иметь историю изменений схемы и возможность отката (обратные миграции с
DROP TABLE/ALTER TABLE ... DROP COLUMNи т.п.);применять изменения безопасно и в правильном порядке на разных окружениях:
dev,staging,production;минимизировать ручные изменения в БД и количество ошибок.
Инструменты миграций
Миграции часто поддерживаются фреймворками и библиотеками:
alembic— инструмент миграций дляSQLAlchemy;djangoделает миграции черезpython manage.py makemigrations/migrate;Flyway,Liquibaseи др. для разных языков и стеков.
Обычно у таких инструментов есть специальная таблица версий (например, alembic_version), где хранится, какие миграции уже применены.
Как ответить на собеседовании
Миграция — это версионируемый шаг изменения структуры базы данных: создание и изменение таблиц, столбцов, индексов и ограничений. Мы описываем эти изменения в виде скриптов SQL или Python‑кода и применяем их по мере обновления приложения. Это позволяет эволюционировать схему вместе с кодом и безопасно раскатывать изменения на все окружения.
Оцени свой прогресс