Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Prisma ORM

最終更新 Markdown で表示Agent セットアップ

Prisma ORM は、型安全性と開発体験に重点を置いた Node.js / TypeScript 向け ORM です。この例では、Cloudflare Workers アプリケーションで Cloudflare Hyperdrive 経由の PostgreSQL に Prisma ORM を使う方法を示します。

前提条件

1. Prisma ORM をインストールする

Prisma CLI を開発依存関係としてインストールします。

npm i -D prisma

Hyperdrive で使う pg ドライバーと Prisma ドライバーアダプターをインストールします。

npm i pg@>8.13.0 @prisma/adapter-pg

TypeScript を使う場合は、型パッケージをインストールします。

npm i -D @types/pg

必要な Node.js 互換フラグと Hyperdrive バインディングを Wrangler 構成ファイルに追加します。

{
	// required for database drivers to function
	"compatibility_flags": [
		"nodejs_compat"
	],
	// Set this to today's date
	"compatibility_date": "2026-09-20",
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "<your-hyperdrive-id-here>"
		}
	]
}
compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-09-20"

[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"

2. Prisma ORM を設定する

2.1. Prisma を初期化する

アプリケーションで Prisma を初期化します。

npx prisma init

prisma フォルダーに schema.prisma ファイルと .env ファイルが作成されます。

2.2. スキーマを定義する

prisma/schema.prisma ファイルでデータベーススキーマを定義します。

prisma/schema.prismaprisma
generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["driverAdapters"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model User {
  id        Int      @id @default(autoincrement())
  name      String
  email     String   @unique
  createdAt DateTime @default(now())
}

2.3. 環境変数を設定する

Prisma が作成した .env ファイルに、データベースの接続文字列を追加します。

.envtxt
DATABASE_URL="postgres://user:password@host:port/database"

package.json にヘルパースクリプトを追加します。

package.jsonjson
"scripts": {
  "migrate": "npx prisma migrate dev",
  "generate": "npx prisma generate --no-engine",
  "studio": "npx prisma studio"
}

2.4. Prisma Client を生成する

ドライバーアダプター対応の Prisma Client を生成します。

npm run generate

2.5. マイグレーションを実行する

データベーススキーマを生成して適用します。

npm run migrate

プロンプトが表示されたら、マイグレーション名を入力します(例: init)。

3. Prisma ORM を Hyperdrive に接続する

Prisma ORM を使うときは Hyperdrive 構成を使います。src/index.ts ファイルを更新します。

src/index.tsts
import { PrismaPg } from "@prisma/adapter-pg";
import { PrismaClient } from "@prisma/client";

export interface Env {
	HYPERDRIVE: Hyperdrive;
}

export default {
	async fetch(request, env, ctx): Promise<Response> {
		// Create Prisma client using driver adapter with Hyperdrive connection string
		const adapter = new PrismaPg({ connectionString: env.HYPERDRIVE.connectionString });
		const prisma = new PrismaClient({ adapter });

		// Sample query to create and fetch users
		const user = await prisma.user.create({
			data: {
				name: "John Doe",
				email: `john.doe.${Date.now()}@example.com`,
			},
		});

		const allUsers = await prisma.user.findMany();

		return Response.json({
			newUser: user,
			allUsers: allUsers,
		});
	},
} satisfies ExportedHandler<Env>;

4. Worker をデプロイする

Worker をデプロイします。

npx wrangler deploy

次のステップ

役に立ちましたか?