Files
voidea/template/docs/15-migration-policy.md
T

1.4 KiB

Политика миграций БД


Инструмент: Alembic

Миграции управляются через Alembic.

# Создать миграцию
alembic revision --autogenerate -m "add_users_table"

# Применить
alembic upgrade head

# Откатить
alembic downgrade -1

Правила

  1. Одна миграция на одно изменение. Не смешивать разные изменения в одной миграции.
  2. Обратная совместимость. Миграция должна иметь downgrade.
  3. Тестирование. Каждая миграция тестируется (upgrade + downgrade).
  4. Именование: {revision}_{action}_{table}.py
    • a1b2c3d4e5f6_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)