Files
samreshu_docs/architecture/decisions/003-drizzle-orm.md
Anton 99cd8ae727 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
2026-03-04 12:07:17 +03:00

32 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-специфичного