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

1.6 KiB
Raw Permalink Blame History

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-специфичного