
Что такое Призма?
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 .
Related MCP server: SaaS database MCP
Начиная
Быстрый старт (5 мин)
Самый быстрый способ начать работу с Prisma — следовать руководствам по быстрому старту. Вы можете выбрать одну из двух баз данных:
Принесите свою собственную базу данных
Если у вас уже есть собственная база данных, вы можете следовать этим инструкциям:
Как работает Prisma ORM
В этом разделе представлен общий обзор того, как работает Prisma ORM и его наиболее важные технические компоненты. Для более подробного ознакомления посетите документацию Prisma .
Схема Prisma
Каждый проект, использующий инструмент из набора инструментов Prisma, начинается с файла схемы Prisma . Схема Prisma позволяет разработчикам определять свои модели приложений на интуитивно понятном языке моделирования данных. Она также содержит подключение к базе данных и определяет генератор :
// Data source
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
// Generator
generator client {
provider = "prisma-client-js"
}
// Data model
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
}В этой схеме вы настраиваете три вещи:
Источник данных : указывает подключение к базе данных (через переменную среды)
Генератор : указывает, что вы хотите сгенерировать Prisma Client
Модель данных : определяет модели вашего приложения.
Модель данных Prisma
На этой странице основное внимание уделяется модели данных. Вы можете узнать больше об источниках данных и генераторах на соответствующих страницах документации.
Функции моделей Prisma
Модель данных представляет собой набор моделей . Модель имеет две основные функции:
Представляет таблицу в базовой базе данных
Обеспечить основу для запросов в Prisma Client API
Получение модели данных
Существует два основных рабочих процесса для «включения» модели данных в схему Prisma:
Сгенерировать модель данных путем интроспекции базы данных
Написание модели данных вручную и ее сопоставление с базой данных с помощью Prisma Migrate
После определения модели данных вы можете сгенерировать Prisma Client , который выставит CRUD и другие запросы для определенных моделей. Если вы используете TypeScript, вы получите полную безопасность типов для всех запросов (даже при извлечении только подмножеств полей модели).
Доступ к вашей базе данных с помощью Prisma Client
Создание Prisma Client
Первым шагом при использовании Prisma Client является установка пакета npm:
npm install @prisma/clientОбратите внимание, что установка этого пакета вызывает команду prisma generate , которая считывает вашу схему Prisma и генерирует код Prisma Client. Код будет расположен в node_modules/.prisma/client , который экспортируется node_modules/@prisma/client/index.d.ts .
После изменения модели данных вам потребуется вручную повторно сгенерировать Prisma Client, чтобы гарантировать обновление кода внутри node_modules/.prisma/client :
npx prisma generateДополнительную информацию о «создании клиента Prisma» можно найти в документации.
Использование Prisma Client для отправки запросов в вашу базу данных
После того, как Prisma Client сгенерирован, вы можете импортировать его в свой код и отправлять запросы в свою базу данных. Вот как выглядит код настройки.
Импорт и создание экземпляра Prisma Client
Вы можете импортировать и создать экземпляр Prisma Client следующим образом:
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()или
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()Теперь вы можете начать отправлять запросы через сгенерированный Prisma Client API, вот несколько примеров запросов. Обратите внимание, что все запросы Prisma Client возвращают простые старые объекты JavaScript .
Узнайте больше о доступных операциях в документации Prisma Client или посмотрите это демонстрационное видео (2 мин).
Извлечь все записи User из базы данных
const allUsers = await prisma.user.findMany()Включить отношение posts к каждому возвращаемому объекту User
const allUsers = await prisma.user.findMany({
include: { posts: true },
})Фильтровать все записи Post , содержащие "prisma"
const filteredPosts = await prisma.post.findMany({
where: {
OR: [{ title: { contains: 'prisma' } }, { content: { contains: 'prisma' } }],
},
})Создайте нового User и новую запись Post в одном запросе.
const user = await prisma.user.create({
data: {
name: 'Alice',
email: 'alice@prisma.io',
posts: {
create: { title: 'Join us for Prisma Day 2021' },
},
},
})Обновить существующую запись Post
const post = await prisma.post.update({
where: { id: 42 },
data: { published: true },
})Использование с TypeScript
Обратите внимание, что при использовании TypeScript результат этого запроса будет статически типизирован, так что вы не сможете случайно получить доступ к свойству, которого не существует (и любые опечатки будут обнаружены во время компиляции). Узнайте больше об использовании сгенерированных типов Prisma Client на странице Расширенное использование сгенерированных типов в документации.
Сообщество
Prisma имеет большое и поддерживающее сообщество энтузиастов-разработчиков приложений. Вы можете присоединиться к нам на Discord и здесь на GitHub .
Значки
Создали что-то потрясающее с помощью Prisma? 🌟 Покажите это с помощью этих значков , которые идеально подойдут для вашего файла readme или веб-сайта.
[](https://prisma.io)[](https://prisma.io)МСР-сервер
Prisma CLI включает в себя сервер Prisma MCP . Он запускается с помощью этой команды CLI:
npx prisma mcpБольшинство инструментов ИИ поддерживают конфигурацию на основе JSON для серверов MCP, которая выглядит следующим образом:
{
"mcpServers": {
"Prisma": {
"command": "npx",
"args": ["-y", "prisma", "mcp"]
}
}
}Сервер MCP Prisma предоставляет агентам ИИ возможность управлять базами данных Prisma Postgres (например, запускать новые экземпляры баз данных или выполнять миграцию схем).
Безопасность
Если у вас возникли проблемы с безопасностью, свяжитесь с нами по адресу security@prisma.io .
Поддерживать
Задайте вопрос о Prisma
Вы можете задавать вопросы и инициировать обсуждения по темам, связанным с Prisma, в репозитории prisma на GitHub.
Создайте отчет об ошибке для Prisma
Если вы видите сообщение об ошибке или сталкиваетесь с проблемой, обязательно создайте отчет об ошибке! Вы можете найти лучшие практики создания отчетов об ошибках (например, включение дополнительных отладочных данных) в документации.
Отправить запрос на функцию
Если в Prisma в настоящее время отсутствует определенная функция, обязательно ознакомьтесь с дорожной картой , чтобы узнать, запланирована ли она на будущее.
Если функция в дорожной карте связана с проблемой GitHub, обязательно оставьте 👍 реакцию на проблему и, в идеале, комментарий с вашими мыслями о функции!
Внося вклад
Ознакомьтесь с нашими правилами внесения вклада и Кодексом поведения для вкладчиков .
Статус тестов
Статус испытаний Prisma:
Статус тестов экосистемы:
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.