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 を確認してください。
はじめる
クイックスタート(5分)
Prismaを使い始める最も早い方法は、クイックスタートガイドに従うことです。以下の2つのデータベースのいずれかを選択できます。
独自のデータベースを持ち込む
すでに独自のデータベースをお持ちの場合は、次のガイドに従ってください。
Prisma ORMの仕組み
このセクションでは、Prisma ORMの仕組みと最も重要な技術コンポーネントについて概要を説明します。より詳細な情報については、 Prismaのドキュメントをご覧ください。
Prismaスキーマ
Prismaツールキットのツールを使用するすべてのプロジェクトは、Prismaスキーマファイルから始まります。Prismaスキーマにより、開発者は直感的なデータモデリング言語でアプリケーションモデルを定義できます。また、データベースへの接続とジェネレーターの定義も含まれています。
このスキーマでは、次の 3 つの項目を構成します。
- データソース: データベース接続を指定します(環境変数経由)
- ジェネレーター: Prismaクライアントを生成することを示します
- データモデル: アプリケーションモデルを定義します
Prismaデータモデル
このページでは、データモデルに焦点を当てています。データソースとジェネレーターの詳細については、それぞれのドキュメントページをご覧ください。
Prismaモデルの機能
データモデルは モデルの集合です。モデルには2つの主要な機能があります。
- 基礎となるデータベース内のテーブルを表す
- Prisma クライアント API のクエリの基盤を提供する
データモデルの取得
データ モデルを Prisma スキーマに「取り込む」ための主なワークフローは 2 つあります。
- データベースのイントロスペクションからデータモデルを生成する
- データモデルを手動で記述し、 Prisma Migrateを使用してデータベースにマッピングする
データモデルを定義したら、定義されたモデルに対してCRUDやその他のクエリを公開するPrismaクライアントを生成できます。TypeScriptを使用している場合は、すべてのクエリで完全な型安全性が確保されます(モデルのフィールドのサブセットのみを取得する場合でも)。
Prisma Client でデータベースにアクセスする
Prismaクライアントの生成
Prisma Client を使用する際の最初のステップは、npm パッケージをインストールすることです。
このパッケージをインストールすると、 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 を手動で再生成する必要があります。
「Prisma クライアントの生成」の詳細については、ドキュメントを参照してください。
Prisma Clientを使用してデータベースにクエリを送信する
Prismaクライアントが生成されたら、コードにインポートしてデータベースにクエリを送信できます。セットアップコードは以下のようになります。
Prisma Client をインポートしてインスタンス化する
Prisma Client を次のようにインポートしてインスタンス化できます。
または
生成されたPrismaクライアントAPI経由でクエリを送信できるようになりました。以下にサンプルクエリをいくつか示します。すべてのPrismaクライアントクエリは*、プレーンなJavaScriptオブジェクト*を返すことに注意してください。
利用可能な操作の詳細については、 Prisma クライアントのドキュメントを参照するか、このデモ ビデオ(2 分) をご覧ください。
データベースからすべてのUser
レコードを取得する
返される各User
オブジェクトにposts
リレーションを含める
"prisma"
を含むすべてのPost
レコードをフィルタリングします
同じクエリで新しいUser
と新しいPost
レコードを作成する
既存のPost
レコードを更新する
TypeScriptでの使用
TypeScriptを使用する場合、このクエリの結果は静的に型付けされるため、存在しないプロパティに誤ってアクセスすることはありません(また、タイプミスはコンパイル時に検出されます)。Prisma Clientの生成された型を活用する方法については、ドキュメントの「 生成された型の高度な使用方法」ページをご覧ください。
コミュニティ
Prismaには、熱心なアプリケーション開発者による大規模で協力的なコミュニティがあります。DiscordまたはGitHubでご参加いただけます。
バッジ
Prisma で何か素晴らしいものを作りましたか?🌟 これらのバッジでそれを披露しましょう。Readme や Web サイトに最適です。
MCPサーバー
Prisma CLIにはPrisma MCPサーバーが含まれています。これは以下のCLIコマンドで起動できます。
ほとんどの AI ツールは、次のような MCP サーバーの JSON ベースの構成をサポートしています。
Prisma の MCP サーバーは、AI エージェントにPrisma Postgresデータベースを管理する機能 (新しいデータベース インスタンスの起動やスキーマ移行の実行など) を提供します。
安全
セキュリティ上の問題を報告する場合は、 security@prisma.ioまでご連絡ください。
サポート
Prismaについて質問する
GitHub のprisma
リポジトリで、Prisma 関連のトピックについて質問したり、ディスカッションを開始したりできます。
👉質問する
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データベースを簡単に管理