feat(bot): модель данных, миграции, FSM в БД #31

Closed
Eleboba wants to merge 1 commits from feat/5-db into dev
Owner

Что меняется

Модель данных (13 таблиц), миграции Alembic с применением при старте, FSM aiogram в БД (диалоги переживают рестарт), фоновая TTL-чистка.

Closes #5

Как проверить

make lint && make test     # 30 тестов, в т.ч. дрейф моделей ↔ миграций
docker compose up -d --wait postgres
docker compose run --rm --no-deps bot python -m app.db.migrate
docker compose exec postgres psql -U tgit -d tgit -c '\dt'

Заметки

  • Перечисления — VARCHAR + CHECK, не нативные PG enum: переносимо и проще мигрировать.
  • Проверено на реальном Postgres 16: CHECK работает, дрейфа нет, downgrade/upgrade ок.

Чек-лист

  • ветка от origin/dev
  • lint + тесты зелёные
  • секретов в диффе нет
  • лог в issue дописан

🤖 Generated with Claude Code

## Что меняется Модель данных (13 таблиц), миграции Alembic с применением при старте, FSM aiogram в БД (диалоги переживают рестарт), фоновая TTL-чистка. Closes #5 ## Как проверить ```bash make lint && make test # 30 тестов, в т.ч. дрейф моделей ↔ миграций docker compose up -d --wait postgres docker compose run --rm --no-deps bot python -m app.db.migrate docker compose exec postgres psql -U tgit -d tgit -c '\dt' ``` ## Заметки - Перечисления — VARCHAR + CHECK, не нативные PG enum: переносимо и проще мигрировать. - Проверено на реальном Postgres 16: CHECK работает, дрейфа нет, downgrade/upgrade ок. ## Чек-лист - [x] ветка от origin/dev - [x] lint + тесты зелёные - [x] секретов в диффе нет - [x] лог в issue дописан 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-15 18:46:15 +03:00
- app/db/models.py: 13 таблиц (ARCHITECTURE §2.10); перечисления — VARCHAR + CHECK,
  JSON → JSONB на Postgres, BIGINT/INTEGER-ключи для SQLite
- миграция 0001 (автогенерация + ручная чистка: импорт sa.Text, дубли CHECK)
- миграции применяются при старте бота программно (app.db.migrate), script_location из пакета
- SqlStorage: FSM aiogram поверх fsm_state — состояние переживает рестарт (перенесено из #4)
- cleanup_loop: истёкшие черновики, снимки контейнеров и попытки входа старше суток
- тесты: upgrade/downgrade, дрейф моделей и миграций, CHECK, CASCADE, FSM, чистка

Refs #5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba force-pushed feat/5-db from f022731a5d to 282920e06b 2026-10-15 18:46:15 +03:00 Compare
Eleboba added 1 commit 2026-10-15 18:52:17 +03:00
Eleboba closed this pull request 2026-10-15 18:52:43 +03:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.