1.4 KiB
1.4 KiB
Политика миграций БД
Инструмент: Alembic
Миграции управляются через Alembic.
# Создать миграцию
alembic revision --autogenerate -m "add_users_table"
# Применить
alembic upgrade head
# Откатить
alembic downgrade -1
Правила
- Одна миграция на одно изменение. Не смешивать разные изменения в одной миграции.
- Обратная совместимость. Миграция должна иметь downgrade.
- Тестирование. Каждая миграция тестируется (upgrade + downgrade).
- Именование:
{revision}_{action}_{table}.pya1b2c3d4e5f6_add_content_to_ideas.py
Названия миграций
create_{table}
add_{column}_to_{table}
remove_{column}_from_{table}
add_index_on_{table}_{column}
add_fk_{table}_{column}
[ASK] Вопросы по миграциям
- Автоматические миграции на production? (не рекомендуется — только через CI после проверки)
- Data migration (перенос данных) vs schema migration? (data migration = отдельный скрипт)
- Как бекапить БД перед миграцией? (pg_dump / sqlite3 .backup)