B5-2: Alembic vs raw SQL — синхронизация состояния схемы #72

Closed
opened 2026-05-11 20:35:37 +00:00 by lekss361 · 0 comments
lekss361 commented 2026-05-11 20:35:37 +00:00 (Migrated from github.com)

Эшелон: 💾 Data infrastructure

Зачем

Схема БД развивается через 84 raw SQL файла в data/sql/, плюс Alembic migrations в backend/alembic/versions/. Состояние Alembic неизвестно. Несоответствие → риск при make migration.

Что сделать

  • alembic current в prod (через SSH tunnel) — какая версия head?
  • Совпадает ли с реальной схемой? Сравнить alembic check + ручной inspect
  • Если расхождение:
    • Опция A: создать «catch-up» migration описывающую всё
    • Опция B: пометить current state как baseline через alembic stamp head
  • Документировать в vault decisions/Schema_Alembic_vs_RawSQL.md:
    • Raw SQL = deployment artifacts (большие views, partitions, idempotent DDL)
    • Alembic = model-driven changes (новые колонки/таблицы from ORM)

Acceptance

  • Alembic state синхронизирован с prod
  • Decision документ в vault
  • Чёткая граница где что использовать

Owner

database-expert

Effort

~1 день

**Эшелон:** 💾 Data infrastructure ## Зачем Схема БД развивается через **84 raw SQL** файла в `data/sql/`, плюс Alembic migrations в `backend/alembic/versions/`. Состояние Alembic неизвестно. Несоответствие → риск при `make migration`. ## Что сделать - `alembic current` в prod (через SSH tunnel) — какая версия head? - Совпадает ли с реальной схемой? Сравнить `alembic check` + ручной inspect - Если расхождение: - Опция A: создать «catch-up» migration описывающую всё - Опция B: пометить current state как baseline через `alembic stamp head` - Документировать в vault `decisions/Schema_Alembic_vs_RawSQL.md`: - **Raw SQL** = deployment artifacts (большие views, partitions, idempotent DDL) - **Alembic** = model-driven changes (новые колонки/таблицы from ORM) ## Acceptance - [ ] Alembic state синхронизирован с prod - [ ] Decision документ в vault - [ ] Чёткая граница где что использовать ## Owner `database-expert` ## Effort ~1 день
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#72
No description provided.