
Prismaとは何ですか?
Prisma ORM は、次のツールで構成される次世代 ORMです。
Prisma Client : Node.js と TypeScript 用の自動生成型セーフクエリビルダー
Prisma Migrate : 宣言型データモデリングと移行システム
Prisma Studio : データベース内のデータを表示および編集するためのGUI
Prisma Clientは、Node.jsまたはTypeScriptで構築されたあらゆるバックエンドアプリケーション(サーバーレスアプリケーションやマイクロサービスを含む)で使用できます。REST API 、 GraphQL API 、gRPC APIなど、データベースを必要とするあらゆるアプリケーションで使用できます。
Prisma ORM で使用するデータベースが必要な場合は、 Prisma Postgres を確認してください。
Related MCP server: SaaS database MCP
はじめる
クイックスタート(5分)
Prismaを使い始める最も早い方法は、クイックスタートガイドに従うことです。以下の2つのデータベースのいずれかを選択できます。
独自のデータベースを持ち込む
すでに独自のデータベースをお持ちの場合は、次のガイドに従ってください。
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[]
}このスキーマでは、次の 3 つの項目を構成します。
データソース: データベース接続を指定します(環境変数経由)
ジェネレーター: Prismaクライアントを生成することを示します
データモデル: アプリケーションモデルを定義します
Prismaデータモデル
このページでは、データモデルに焦点を当てています。データソースとジェネレーターの詳細については、それぞれのドキュメントページをご覧ください。
Prismaモデルの機能
データモデルは モデルの集合です。モデルには2つの主要な機能があります。
基礎となるデータベース内のテーブルを表す
Prisma クライアント API のクエリの基盤を提供する
データモデルの取得
データ モデルを Prisma スキーマに「取り込む」ための主なワークフローは 2 つあります。
データベースのイントロスペクションからデータモデルを生成する
データモデルを手動で記述し、 Prisma Migrateを使用してデータベースにマッピングする
データモデルを定義したら、定義されたモデルに対してCRUDやその他のクエリを公開するPrismaクライアントを生成できます。TypeScriptを使用している場合は、すべてのクエリで完全な型安全性が確保されます(モデルのフィールドのサブセットのみを取得する場合でも)。
Prisma Client でデータベースにアクセスする
Prismaクライアントの生成
Prisma Client を使用する際の最初のステップは、npm パッケージをインストールすることです。
npm install @prisma/clientこのパッケージをインストールすると、 prisma generateコマンドが呼び出され、Prismaスキーマが読み込まれてPrismaクライアントコードが生成されます。生成されたコードは、node_modules/@prisma/client/index.d.ts によってエクスポートされるnode_modules/@prisma/client/index.d.ts node_modules/.prisma/clientに配置されます。
データ モデルを変更した後、 node_modules/.prisma/client内のコードが更新されるように、Prisma Client を手動で再生成する必要があります。
npx prisma generate「Prisma クライアントの生成」の詳細については、ドキュメントを参照してください。
Prisma Clientを使用してデータベースにクエリを送信する
Prismaクライアントが生成されたら、コードにインポートしてデータベースにクエリを送信できます。セットアップコードは以下のようになります。
Prisma Client をインポートしてインスタンス化する
Prisma Client を次のようにインポートしてインスタンス化できます。
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()または
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()生成されたPrismaクライアントAPI経由でクエリを送信できるようになりました。以下にサンプルクエリをいくつか示します。すべてのPrismaクライアントクエリは*、プレーンなJavaScriptオブジェクト*を返すことに注意してください。
利用可能な操作の詳細については、 Prisma クライアントのドキュメントを参照するか、このデモ ビデオ(2 分) をご覧ください。
データベースからすべてのUserレコードを取得する
const allUsers = await prisma.user.findMany()返される各Userオブジェクトにpostsリレーションを含める
const allUsers = await prisma.user.findMany({
include: { posts: true },
})"prisma"を含むすべてのPostレコードをフィルタリングします
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 や Web サイトに最適です。
[](https://prisma.io)[](https://prisma.io)MCPサーバー
Prisma CLIにはPrisma MCPサーバーが含まれています。これは以下のCLIコマンドで起動できます。
npx prisma mcpほとんどの AI ツールは、次のような MCP サーバーの JSON ベースの構成をサポートしています。
{
"mcpServers": {
"Prisma": {
"command": "npx",
"args": ["-y", "prisma", "mcp"]
}
}
}Prisma の MCP サーバーは、AI エージェントにPrisma Postgresデータベースを管理する機能 (新しいデータベース インスタンスの起動やスキーマ移行の実行など) を提供します。
安全
セキュリティ上の問題を報告する場合は、 security@prisma.ioまでご連絡ください。
サポート
Prismaについて質問する
GitHub のprismaリポジトリで、Prisma 関連のトピックについて質問したり、ディスカッションを開始したりできます。
👉質問する
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.