# ADR-003: Drizzle ORM ## Статус Принято ## Контекст Нужен типизированный доступ к PostgreSQL из TypeScript-кода. ## Варианты 1. **Prisma** — популярная, удобная генерация типов из schema.prisma, миграции. Минусы: тяжёлый бинарный engine, ограничения на сложные запросы, собственный query language. 2. **Drizzle ORM** — легковесный, SQL-first подход, схема описывается в TypeScript, отличная типизация, близость к чистому SQL. 3. **Kysely** — типизированный query builder, ещё ближе к SQL, но нет встроенных миграций. ## Решение Drizzle ORM. - Схема в TypeScript — типы выводятся автоматически, не нужна кодогенерация - SQL-first: сложные запросы (JOIN, подзапросы, агрегации) пишутся естественно - Лёгкий — нет бинарного engine как у Prisma - Встроенные миграции через `drizzle-kit` - Хорошо сочетается с Fastify (без магии, без декораторов) ## Последствия - Нужно знать SQL (в отличие от Prisma, которая его прячет) - Экосистема меньше, чем у Prisma - VS Code расширение: используем общие SQL/TS расширения вместо Prisma-специфичного