# 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