Prisma ORM

Тема дорожной карты · Node.js

prisma — это ORM нового поколения для Node.js и TypeScript, моделирующий схемы базы данных в декларативном файле schema.prisma и автоматически генерирующий полностью типизированный клиент, устраняя целый класс ошибок SQL-запросов на этапе компиляции. Процесс работы с prisma включает определение моделей и связей в schema.prisma, выполнение npx prisma migrate dev для применения изменений схемы к базе данных и генерации SQL-файлов миграций, и последующее использование сгенерированного PrismaClient для выполнения типобезопасных CRUD-операций в коде приложения Node.js. prisma поддерживает PostgreSQL, MySQL, SQLite, SQL Server, MongoDB и CockroachDB, что делает его одним из наиболее универсальных инструментов доступа к данным в экосистеме серверной разработки Node.js. Для обеспечения производительности prisma поддерживает пул соединений через Prisma Accelerate или конфигурирование лимитов соединений в datasource, а также предоставляет логирование запросов и хуки событий для интеграции с инструментами наблюдаемости Node.js. TypeScript-разработчики выигрывают от сгенерированных prisma типов, поскольку они распространяются через всё приложение — от результатов запросов к базе данных до сериализации ответов API — без ручного дублирования типов.

Как это работает

Prisma ORM использует driver-библиотеки: pg — для PostgreSQL, mysql2 — для MySQL, better-sqlite3 — для SQLite (sync API, быстрый), mongodb — для MongoDB, redis/ioredis — для Redis. ORM сверху: Prisma (TypeScript-first, schema-based), Drizzle (TS-типизированный SQL DSL), Sequelize (зрелый классический), TypeORM (декораторный). Connection pooling важен в production — никогда не открывайте соединение на запрос без pool.

Когда применять

Prisma или Drizzle — для новых TypeScript-проектов: type-safety + миграции чисто интегрированы. Сырой pg + SQL — когда запросы тонко настроены или ORM мешает. SQLite (better-sqlite3) — для маленьких single-host приложений и embedded; удивительно мощный, проще в эксплуатации. Миграции всегда через тул (Prisma migrate, drizzle-kit, knex); не правьте production-схему руками.

Типичные ошибки

Ловушки Prisma ORM: SQL-инъекции из конкатенации строк (параметризованные запросы — есть у каждого драйвера); утечка соединений (важны размер pool + idle timeout); N+1 запросов от наивного ORM (eager-load явно); транзакции, оставленные открытыми из-за early return (async + try/finally); долгие запросы держат row-локи. Slow-query логирование — с самого начала.

Связанные понятия

Полезные ресурсы