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

49 lines
1.4 KiB
Markdown

# Политика миграций БД
---
## Инструмент: Alembic
Миграции управляются через Alembic.
```bash
# Создать миграцию
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)