docs: add full project documentation
- Architecture: overview, 7 ADR, tech stack - Principles: code-style, git-workflow, security - API contracts: auth, profile, tests, admin endpoints - Database schema: tables, relationships, indexes - LLM strategy: prompts, fallback, validation, Qwen 2.5 14B - Onboarding: setup, Docker, .env template - Progress: roadmap, changelog - Agents: context, backend instructions Made-with: Cursor
This commit is contained in:
30
architecture/decisions/004-postgresql.md
Normal file
30
architecture/decisions/004-postgresql.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# ADR-004: PostgreSQL как основная база данных
|
||||
|
||||
## Статус
|
||||
|
||||
Принято
|
||||
|
||||
## Контекст
|
||||
|
||||
Нужна реляционная база данных для хранения пользователей, тестов, вопросов, подписок, платежей.
|
||||
|
||||
## Варианты
|
||||
|
||||
1. **PostgreSQL** — зрелая, надёжная, JSONB для полуструктурированных данных, full-text search, расширяемость.
|
||||
2. **MySQL/MariaDB** — популярна, но слабее в поддержке JSON, CTE, оконных функций.
|
||||
3. **SQLite** — для маленьких проектов, не подходит для конкурентного доступа в prod.
|
||||
|
||||
## Решение
|
||||
|
||||
PostgreSQL.
|
||||
|
||||
- JSONB пригодится для хранения вариантов ответов и метаданных LLM
|
||||
- Полнотекстовый поиск по банку вопросов без внешних зависимостей
|
||||
- Поддерживается всеми хостингами и облачными провайдерами
|
||||
- Drizzle ORM имеет лучшую поддержку именно для PostgreSQL
|
||||
|
||||
## Последствия
|
||||
|
||||
- Локальная разработка через Docker (PostgreSQL в контейнере)
|
||||
- Миграции управляются через `drizzle-kit`
|
||||
- Бэкапы и восстановление — стандартные инструменты pg_dump/pg_restore
|
||||
Reference in New Issue
Block a user