Что такое Призма?
Prisma ORM — это ORM нового поколения , которая состоит из следующих инструментов:
- Prisma Client : автоматически генерируемый и типобезопасный конструктор запросов для Node.js и TypeScript
- Prisma Migrate : декларативная система моделирования и миграции данных
- Prisma Studio : графический интерфейс для просмотра и редактирования данных в вашей базе данных
Prisma Client можно использовать в любом бэкенд-приложении Node.js или TypeScript (включая бессерверные приложения и микросервисы). Это может быть REST API , GraphQL API , gRPC API или что-либо еще, требующее базы данных.
Если вам нужна база данных для использования с Prisma ORM, ознакомьтесь с Prisma Postgres .
Начиная
Быстрый старт (5 мин)
Самый быстрый способ начать работу с Prisma — следовать руководствам по быстрому старту. Вы можете выбрать одну из двух баз данных:
Принесите свою собственную базу данных
Если у вас уже есть собственная база данных, вы можете следовать этим инструкциям:
Как работает Prisma ORM
В этом разделе представлен общий обзор того, как работает Prisma ORM и его наиболее важные технические компоненты. Для более подробного ознакомления посетите документацию Prisma .
Схема Prisma
Каждый проект, использующий инструмент из набора инструментов Prisma, начинается с файла схемы Prisma . Схема Prisma позволяет разработчикам определять свои модели приложений на интуитивно понятном языке моделирования данных. Она также содержит подключение к базе данных и определяет генератор :
В этой схеме вы настраиваете три вещи:
- Источник данных : указывает подключение к базе данных (через переменную среды)
- Генератор : указывает, что вы хотите сгенерировать Prisma Client
- Модель данных : определяет модели вашего приложения.
Модель данных Prisma
На этой странице основное внимание уделяется модели данных. Вы можете узнать больше об источниках данных и генераторах на соответствующих страницах документации.
Функции моделей Prisma
Модель данных представляет собой набор моделей . Модель имеет две основные функции:
- Представляет таблицу в базовой базе данных
- Обеспечить основу для запросов в Prisma Client API
Получение модели данных
Существует два основных рабочих процесса для «включения» модели данных в схему Prisma:
- Сгенерировать модель данных путем интроспекции базы данных
- Написание модели данных вручную и ее сопоставление с базой данных с помощью Prisma Migrate
После определения модели данных вы можете сгенерировать Prisma Client , который выставит CRUD и другие запросы для определенных моделей. Если вы используете TypeScript, вы получите полную безопасность типов для всех запросов (даже при извлечении только подмножеств полей модели).
Доступ к вашей базе данных с помощью Prisma Client
Создание Prisma Client
Первым шагом при использовании Prisma Client является установка пакета npm:
Обратите внимание, что установка этого пакета вызывает команду prisma generate
, которая считывает вашу схему Prisma и генерирует код Prisma Client. Код будет расположен в node_modules/.prisma/client
, который экспортируется node_modules/@prisma/client/index.d.ts
.
После изменения модели данных вам потребуется вручную повторно сгенерировать Prisma Client, чтобы гарантировать обновление кода внутри node_modules/.prisma/client
:
Дополнительную информацию о «создании клиента Prisma» можно найти в документации.
Использование Prisma Client для отправки запросов в вашу базу данных
После того, как Prisma Client сгенерирован, вы можете импортировать его в свой код и отправлять запросы в свою базу данных. Вот как выглядит код настройки.
Импорт и создание экземпляра Prisma Client
Вы можете импортировать и создать экземпляр Prisma Client следующим образом:
или
Теперь вы можете начать отправлять запросы через сгенерированный Prisma Client API, вот несколько примеров запросов. Обратите внимание, что все запросы Prisma Client возвращают простые старые объекты JavaScript .
Узнайте больше о доступных операциях в документации Prisma Client или посмотрите это демонстрационное видео (2 мин).
Извлечь все записи User
из базы данных
Включить отношение posts
к каждому возвращаемому объекту User
Фильтровать все записи Post
, содержащие "prisma"
Создайте нового User
и новую запись Post
в одном запросе.
Обновить существующую запись Post
Использование с TypeScript
Обратите внимание, что при использовании TypeScript результат этого запроса будет статически типизирован, так что вы не сможете случайно получить доступ к свойству, которого не существует (и любые опечатки будут обнаружены во время компиляции). Узнайте больше об использовании сгенерированных типов Prisma Client на странице Расширенное использование сгенерированных типов в документации.
Сообщество
Prisma имеет большое и поддерживающее сообщество энтузиастов-разработчиков приложений. Вы можете присоединиться к нам на Discord и здесь на GitHub .
Значки
Создали что-то потрясающее с помощью Prisma? 🌟 Покажите это с помощью этих значков , которые идеально подойдут для вашего файла readme или веб-сайта.
МСР-сервер
Prisma CLI включает в себя сервер Prisma MCP . Он запускается с помощью этой команды CLI:
Большинство инструментов ИИ поддерживают конфигурацию на основе JSON для серверов MCP, которая выглядит следующим образом:
Сервер MCP Prisma предоставляет агентам ИИ возможность управлять базами данных Prisma Postgres (например, запускать новые экземпляры баз данных или выполнять миграцию схем).
Безопасность
Если у вас возникли проблемы с безопасностью, свяжитесь с нами по адресу security@prisma.io .
Поддерживать
Задайте вопрос о Prisma
Вы можете задавать вопросы и инициировать обсуждения по темам, связанным с Prisma, в репозитории prisma
на GitHub.
Создайте отчет об ошибке для Prisma
Если вы видите сообщение об ошибке или сталкиваетесь с проблемой, обязательно создайте отчет об ошибке! Вы можете найти лучшие практики создания отчетов об ошибках (например, включение дополнительных отладочных данных) в документации.
Отправить запрос на функцию
Если в Prisma в настоящее время отсутствует определенная функция, обязательно ознакомьтесь с дорожной картой , чтобы узнать, запланирована ли она на будущее.
Если функция в дорожной карте связана с проблемой GitHub, обязательно оставьте 👍 реакцию на проблему и, в идеале, комментарий с вашими мыслями о функции!
Внося вклад
Ознакомьтесь с нашими правилами внесения вклада и Кодексом поведения для вкладчиков .
Статус тестов
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Управляйте базами данных Prisma Postgres с легкостью
Related MCP Servers
- AsecurityAlicenseAqualityFacilitates management and optimization of PostgreSQL databases, offering analysis, setup guidance, and debugging, while ensuring secure and efficient database operations.Last updated -3612TypeScriptAGPL 3.0
- -securityFlicense-qualityProvides read-only access to PostgreSQL databases, enabling users to inspect database schemas and execute read-only queries through a Model Context Protocol server.Last updated -3JavaScript
- -securityAlicense-qualityA Model Context Protocol server that enables powerful PostgreSQL database management capabilities including analysis, schema management, data migration, and monitoring through natural language interactions.Last updated -619TypeScriptAGPL 3.0
- -securityFlicense-qualityA powerful server that provides administrative control over Supabase PostgreSQL databases through Cursor's Composer and Codeium's Cascade, enabling database management with features for tables, records, schema modifications, and more.Last updated -910TypeScript