← Hyperdrive (Postgres & MySQL) / hyperdrive / examples / connect-to-postgres / postgres-drivers-and-libraries
Prisma ORM
Prisma ORM ↗ представляет собой ORM для Node.js и TypeScript, ориентированную на типобезопасность и удобство разработки. В этом примере показано, как использовать Prisma ORM с PostgreSQL через Cloudflare Hyperdrive в приложении на Workers.
Предварительные требования
- Аккаунт Cloudflare с доступом к Workers
- База данных PostgreSQL (например, Prisma Postgres ↗)
- A конфигурация Hyperdrive для базы данных PostgreSQL
- Существующий Проект Worker
1. Установка Prisma ORM
Установите Prisma CLI как dev-зависимость:
npm i -D prismaУстановите pg драйвера и адаптера драйвера Prisma для использования с Hyperdrive:
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-08-28",
"hyperdrive": [
{
"binding": "HYPERDRIVE",
"id": "<your-hyperdrive-id-here>"
}
]
}compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"
[[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 файле:
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. Настройка переменных среды
Добавьте строку подключения к базе данных в файл .env файл, созданный Prisma:
DATABASE_URL="postgres://user:password@host:port/database"Добавьте вспомогательные скрипты в файл package.json:
"scripts": {
"migrate": "npx prisma migrate dev",
"generate": "npx prisma generate --no-engine",
"studio": "npx prisma studio"
}2.4. Генерация Prisma Client
Сгенерируйте клиент Prisma с поддержкой адаптера драйвера:
npm run generate2.5. Выполнение миграций
Создайте и примените схему базы данных:
npm run migrateКогда появится запрос, укажите имя миграции (например, init).
3. Подключение Prisma ORM к Hyperdrive
Используйте свою конфигурацию Hyperdrive при работе с Prisma ORM. Обновите src/index.ts файле:
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Следующие шаги
- Подробнее о Как работает Hyperdrive.
- См. руководство по устранению неполадок чтобы отладить типичные проблемы.
- Узнайте больше о других варианты хранения доступен для Cloudflare Workers.