Перейти к содержимому

1. Что такое Prisma ORM

Prisma — это ORM (Object-Relational Mapper) с открытым исходным кодом, который кардинально меняет подход к работе с базами данных в Node.js и TypeScript-приложениях. Вместо написания сырых SQL-запросов или работы с громоздкими декораторами вы получаете интуитивный API с полной типобезопасностью.

В отличие от других ORM, Prisma использует schema-first подход: вы описываете все модели данных в едином файле schema.prisma. На основе этой схемы Prisma генерирует типизированный клиент, подходящие типы TypeScript и SQL-миграции.

Файл схемы содержит блок generator, указывающий что генерировать (обычно prisma-client-js), и блок datasource, указывающий на тип и URL базы данных. Один файл схемы — единственный источник истины для всего стека.

Когда разработчики выбирают инструмент для работы с БД, они рассматривают три варианта: Raw SQL, традиционные ORM вроде Sequelize/TypeORM, и Prisma. Каждый подход имеет свои плюсы и минусы.

Raw SQL даёт максимальный контроль, но требует ручного маппинга данных и не имеет типобезопасности. Sequelize и TypeORM предоставляют абстракцию над SQL, но их типизация неполна, а конфигурация сложна. Prisma предлагает лучшее из обоих миров: удобный API и строгую типобезопасность.

Ключевое отличие Prisma от Sequelize/TypeORM — это автогенерация типов. Типы TypeScript не пишутся вручную и не выводятся из декораторов — они полностью генерируются из схемы. Это гарантирует, что типы всегда соответствуют реальной структуре базы данных.