1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Prisma

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Prisma

Prisma

Discord

Быстрый старт   •   Сайт   •   Документация   •   Примеры   •   Блог   •   Discord   •   Twitter   •   YouTube

Что такое Prisma?

ORM Prisma — это ORM следующего поколения, который состоит из этих инструментов:

  • Prisma Client: Автоматически сгенерированный и типобезопасный построитель запросов для Node.js & TypeScript
  • Prisma Migrate: Декларативная система моделирования данных и миграций
  • Prisma Studio: GUI для просмотра и редактирования данных в вашей базе данныхPrisma Client можно использовать в любом приложении с серверной частью на Node.js или TypeScript (включая серверные приложения и микросервисы). Это может быть REST API, GraphQL API, API gRPC или что угодно ещё, что требует базы данных. Если вам нужна база данных для использования с Prisma ORM, обратитесь к Prisma Postgres.

Начало работы

Быстрый старт (5 минут)

Самый быстрый способ начать работу с Prisma — следовать руководствам по быстрому началу. Вы можете выбрать одну из двух баз данных:

Принесите свою собственную базу данных

Если у вас уже есть своя база данных, вы можете следовать этим руководствам:

Как работает Prisma ORM

Этот раздел предоставляет общее представление о том, как работает Prisma ORM, и его наиболее важных технических компонентах. Для более подробного введения посетите документацию Prisma.### Схема Prisma

Каждый проект, использующий инструменты из набора инструментов Prisma, начинается с файла схемы Prisma. Схема Prisma позволяет разработчикам определять свои модели приложения на интуитивном языке моделирования данных. Она также содержит соединение с базой данных и определяет генератор:

// Источник данных
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

// Генератор
generator client {
  provider = "prisma-client-js"
}

// Модель данных
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

Модель данных представляет собой коллекцию моделей. Модель выполняет две основные функции:- Представляет таблицу в базе данных

  • Обеспечивает основу для запросов в API Prisma Client

Получение модели данных

Существует два основных рабочих процесса для "получения" модели данных в вашем схеме 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 Client"](https://www.prisma.io/docs/concepts/components/prisma-client/generating-prisma-client).

#### Использование Prisma Client для отправки запросов к вашей базе данных. После генерации Prisma Client вы можете импортировать его в свой код и отправлять запросы к вашей базе данных. Вот как выглядит код установки.

##### Импорт и создание экземпляра Prisma Client

Вы можете импортировать и создать экземпляр Prisma Client следующим образом:

```ts
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

или

const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

Теперь вы можете начать отправку запросов через сгенерированный API Prisma Client. Вот несколько примеров запросов. Обратите внимание, что все запросы 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` в одном запросе

```ts
const user = await prisma.user.create({
  data: {
    name: 'Аlice',
    email: 'alice@prisma.io',
    posts: {
      create: { title: 'Присоединяйтесь к нам на Prisma Day 2021' },
    },
  },
})
Обновление существующей записи Post
const post = await prisma.post.update({
  where: { id: 42 },
  data: { published: true },
})

Использование с TypeScript

Обратите внимание, что при использовании TypeScript результат этого запроса будет статически типизирован, чтобы вы не могли случайно получить доступ к свойству, которое не существует (и любые опечатки будут пойманы во время компиляции). Узнайте больше о том, как использовать сгенерированные типы в документации.

Сообщество

У Prisma есть большое и поддерживаемое сообщество энтузиастов разработки приложений. Вы можете присоединиться к нам на Discord и здесь на GitHub.

Бейджи

Создано с помощью Prisma Создано с помощью Prisma

Построили что-то впечатляющее с использованием Prisma? 🌟 Покажите это с помощью этих бейджей, идеально подходящих для вашего README или сайта.

[![Создано с помощью Prisma](http://made-with.prisma.io/dark.svg)](https://prisma.io)

Создано с помощью Prisma


## MCP сервер

CLI Prisma включает в себя [сервер MCP Prisma](https://www.prisma.io/docs/postgres/mcp-server). Он запускается через эту команду CLI:

npx prisma mcp


Большинство инструментов AI поддерживают конфигурацию на основе JSON для серверов MCP, выглядящую следующим образом:

```json
{
  "mcpServers": {
    "Prisma": {
      "command": "npx",
      "args": ["-y", "prisma", "mcp"]
    }
  }
}

Сервер MCP Prisma позволяет агентам AI управлять базами данных Prisma Postgres (например, запуск новых экземпляров баз данных или выполнение миграций схемы).

Безопасность

Если у вас есть сообщение о проблеме безопасности, пожалуйста, свяжитесь с нами по адресу security@prisma.io.

Поддержка

Задайте вопрос о Prisma

Вы можете задавать вопросы и начинать обсуждения по темам, связанным с Prisma, в репозитории prisma на GitHub.

👉 Задать вопрос

Создайте отчет о баге для Prisma

Если вы видите сообщение об ошибке или столкнулись с проблемой, убедитесь, что создали отчет о баге! Вы можете найти лучшие практики для создания отчетов о багах (например, включая дополнительные данные отладки) в документации.

👉 Создать отчет о баге### Предложите новую функцию

Если Prisma в настоящее время не имеет определённой функции, обязательно проверьте дорожную карту, чтобы узнать, планируется ли эта функция в будущем.

Если функция на дорожной карте связана с задачей на GitHub, убедитесь, что оставили реакцию 👍 и, желательно, комментарий со своими мыслями о функции!👉 Подать запрос на новую функцию

Вклад

См. наши инструкции по вкладу и код поведения для участников.

Статус тестов

  • Статус тестов Prisma: Статус тестов Prisma
  • Статус тестов экосистемы: Статус тестов экосистемы

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-Prisma.git
git@api.gitlife.ru:oschina-mirror/mirrors-Prisma.git
oschina-mirror
mirrors-Prisma
mirrors-Prisma
main