はじめに
Prisma Clientは、データに合わせて調整された、自動生成される型安全なクエリビルダーです。Prisma Clientを使い始める最も簡単な方法は、クイックスタートに従うことです。
クイックスタート (5分)
下記のセットアップ手順では、Prisma Clientをセットアップするために必要な手順の概要を説明しています。独自のデータベースでPrisma Clientの使用を開始したい場合は、以下のガイドのいずれかに従ってください。
新しいプロジェクトをゼロからセットアップする
既存のプロジェクトにPrismaを追加する
セットアップ
1. 前提条件
Prisma Clientをセットアップするには、データベース接続、Prisma Clientジェネレーター、および少なくとも1つのモデルを含むPrismaスキーマファイルが必要です。
datasource db {
url = env("DATABASE_URL")
provider = "postgresql"
}
generator client {
provider = "prisma-client-js"
}
model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
email String @unique
name String?
}
また、Prisma CLIのインストールも必ず行ってください。
npm install prisma --save-dev
npx prisma
2. インストール
次のコマンドを使用して、プロジェクトにPrisma Clientをインストールします。
npm install @prisma/client
このコマンドは、prisma generate
コマンドも実行し、Prisma Clientをnode_modules/.prisma/client
ディレクトリに生成します。
3. Prisma Clientのインポート
ユースケースに応じて、プロジェクトにPrisma Clientをインポートする複数の方法があります。
- TypeScript
- JavaScript
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
const { PrismaClient } = require('@prisma/client')
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
エッジ環境の場合、Prisma Clientを次のようにインポートできます。
- TypeScript
- JavaScript
import { PrismaClient } from '@prisma/client/edge'
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
const { PrismaClient } = require('@prisma/client/edge')
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
注: ドライバアダプターを使用している場合は、
@prisma/client
から直接インポートできます。@prisma/client/edge
からインポートする必要はありません。
Denoの場合、Prisma Clientを次のようにインポートできます。
import { PrismaClient } from './generated/client/deno/edge.ts'
const prisma = new PrismaClient()
// use `prisma` in your application to read and write data in your DB
インポートパスは、Prismaスキーマのgenerator
ブロックで指定されたカスタムoutput
によって異なります。
4. Prisma Clientを使用してデータベースにクエリを送信する
PrismaClient
をインスタンス化したら、コード内でクエリの送信を開始できます。
// run inside `async` function
const newUser = await prisma.user.create({
data: {
name: 'Alice',
email: 'alice@prisma.io',
},
})
const users = await prisma.user.findMany()
すべてのPrisma Clientメソッドは、PrismaPromise
のインスタンスを返します。これは、await
または.then()
または.catch()
を呼び出したときにのみ実行されます。
5. アプリケーションの進化
Prismaスキーマに反映されるデータベースに変更を加えるたびに、node_modules/.prisma/client
ディレクトリで生成されたコードを更新するために、Prisma Clientを手動で再生成する必要があります。
prisma generate