תיעוד 218
הגדרה ושימוש במסד נתונים Prisma Postgres
עודכן לאחרונה ב-23 באפריל 2026
Prisma Postgres הוא מסד נתונים מנוהל של PostgreSQL בסגנון serverless. הוא תומך ביכולות כמו מאגר חיבורים (connection pooling), מטמון, מנויים בזמן אמת, והמלצות לאופטימיזציה של שאילתות.
במדריך הזה תלמדו כיצד:
- להגדיר פרויקט Cloudflare Workers עם Prisma ORM.
- ליצור מופע Prisma Postgres מתוך ה-CLI של Prisma.
- למדל נתונים ולהריץ מיגרציות עם Prisma Postgres.
- לשלוף נתונים ממסד הנתונים מתוך Workers.
- לפרוס את ה-Worker ל-Cloudflare.
#דרישות מוקדמות
כדי לעקוב אחרי המדריך הזה, ודאו שיש לכם את אלה:
- Node.js בגרסה
v18.18ומעלה מותקן. - חשבון Cloudflare פעיל.
- היכרות בסיסית עם התקנה ושימוש ביישומי ממשק שורת פקודה (CLI).
#1. יצירת פרויקט Worker חדש
התחילו בשימוש ב-C3 כדי ליצור פרויקט Worker בשורת הפקודה:
npm create cloudflare@latest prisma-postgres-worker -- --type=hello-world --ts=true --git=true --deploy=falseאחר כך עברו אל תוך הפרויקט:
cd ./prisma-postgres-workerהקובץ הראשוני src/index.ts מכיל כרגע מטפל בקשות פשוט:
src/index.ts
export default {
async fetch(request, env, ctx): Promise<Response> {
return new Response("Hello World!");
},
} satisfies ExportedHandler<Env>;#2. הגדרת Prisma בפרויקט
בשלב הזה תגדירו את Prisma ORM עם מסד נתונים Prisma Postgres באמצעות ה-CLI. אחר כך תיצרו ותריצו סקריפטי עזר כדי ליצור טבלאות במסד הנתונים ולייצר לקוח Prisma לשליפת נתונים ממנו.
#2.1. התקנת התלויות הנדרשות
התקינו את Prisma CLI כתלות פיתוח:
npm
npm i -D prismayarn
yarn add -D prismapnpm
pnpm add -D prismabun
bun add -d prismaהתקינו את הרחבת הלקוח Prisma Accelerate, כי היא נדרשת עבור Prisma Postgres:
npm
npm i @prisma/extension-accelerateyarn
yarn add @prisma/extension-acceleratepnpm
pnpm add @prisma/extension-acceleratebun
bun add @prisma/extension-accelerateהתקינו את חבילת dotenv-cli כדי לטעון משתני סביבה מ-.dev.vars:
npm
npm i -D dotenv-cliyarn
yarn add -D dotenv-clipnpm
pnpm add -D dotenv-clibun
bun add -d dotenv-cli#2.2. יצירת מסד נתונים Prisma Postgres ואתחול Prisma
אתחלו את Prisma ביישום:
npm
npx prisma@latest init --dbyarn
yarn dlx prisma@latest init --dbpnpm
pnpx prisma@latest init --dbאם עדיין אין לכם חשבון ב-Prisma Data Platform, או אם אינכם מחוברים, הפקודה תבקש מכם להתחבר באמצעות אחד מספקי האימות הזמינים. ייפתח חלון דפדפן כדי שתוכלו להתחבר או ליצור חשבון. חזרו ל-CLI אחרי שתשלימו את השלב הזה.
אחרי ההתחברות (או אם כבר הייתם מחוברים), ה-CLI יבקש מכם לבחור שם פרויקט ואזור למסד הנתונים.
כשהפקודה מסתיימת, היא יוצרת:
- פרויקט ב-Platform Console שמכיל מופע של מסד נתונים Prisma Postgres.
- תיקיית
prismaשמכילה אתschema.prisma, שם תגדירו את סכמת מסד הנתונים. - קובץ
.envבשורש הפרויקט, שיכיל את כתובת מסד הנתונים Prisma Postgres:DATABASE_URL=<your-prisma-postgres-database-url>.
שימו לב ש-Cloudflare Workers לא תומכים בקובצי .env. תשתמשו בקובץ בשם .dev.vars במקום קובץ ה-.env שנוצר עכשיו.
#2.3. הכנת משתני סביבה
שנו את שם קובץ ה-.env בשורש היישום לקובץ .dev.vars:
mv .env .dev.vars#2.4. החלת שינויים בסכמת מסד הנתונים
פתחו את הקובץ schema.prisma בתיקיית prisma והוסיפו את מודל ה-User הבא למסד הנתונים:
prisma/schema.prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String
name String
}בשלב הבא, הוסיפו את סקריפטי העזר הבאים למקטע scripts בקובץ package.json:
package.json
"scripts": {
"migrate": "dotenv -e .dev.vars -- npx prisma migrate dev",
"generate": "dotenv -e .dev.vars -- npx prisma generate --no-engine",
"studio": "dotenv -e .dev.vars -- npx prisma studio",
// Additional worker scripts...
}הריצו את סקריפט המיגרציה כדי להחיל את השינויים על מסד הנתונים:
npm run migrateכשתתבקשו, תנו שם למיגרציה (לדוגמה, init).
אחרי שהשלבים האלה הושלמו, Prisma ORM מוגדר במלואו ומחובר למסד הנתונים Prisma Postgres שלכם.
#3. פיתוח היישום
ערכו את הקובץ src/index.ts והחליפו את התוכן שלו בקוד הבא:
src/index.ts
import { PrismaClient } from "@prisma/client/edge";
import { withAccelerate } from "@prisma/extension-accelerate";
export interface Env {
DATABASE_URL: string;
}
export default {
async fetch(request, env, ctx): Promise<Response> {
const path = new URL(request.url).pathname;
if (path === "/favicon.ico")
return new Response("Resource not found", {
status: 404,
headers: {
"Content-Type": "text/plain",
},
});
const prisma = new PrismaClient({
datasourceUrl: env.DATABASE_URL,
}).$extends(withAccelerate());
const user = await prisma.user.create({
data: {
email: `Jon${Math.ceil(Math.random() * 1000)}@gmail.com`,
name: "Jon Doe",
},
});
const userCount = await prisma.user.count();
return new Response(`\
Created new user: ${user.name} (${user.email}).
Number of users in the database: ${userCount}.
`);
},
} satisfies ExportedHandler<Env>;הריצו את שרת הפיתוח:
npm run devבקרו ב-https://localhost:8787 כדי לראות שהיישום מציג את הפלט הבא:
Number of users in the database: 1בכל רענון של הדף נוצר משתמש חדש. המספר שמוצג יגדל ב-1 עם כל רענון, כי הוא מחזיר את המספר הכולל של המשתמשים במסד הנתונים.
#4. פריסת היישום ל-Cloudflare
כשהיישום נפרס ל-Cloudflare, הוא צריך גישה למשתנה הסביבה DATABASE_URL שמוגדר מקומית ב-.dev.vars. אפשר להשתמש בפקודה npx wrangler secret put כדי להעלות את DATABASE_URL לסביבת הפריסה:
npx wrangler secret put DATABASE_URLכשתתבקשו, הדביקו את הערך של DATABASE_URL (מתוך .dev.vars). אם אתם מחוברים דרך Wrangler CLI, תראו בקשה ששואלת אם תרצו ליצור Worker חדש. אשרו בבחירת "yes":
✔ There doesn't seem to be a Worker called "prisma-postgres-worker". Do you want to create a new Worker with that name and add secrets to it? … yesאחר כך הריצו את הפקודה הבאה כדי לפרוס את הפרויקט ל-Cloudflare Workers:
npm run deployה-CLI של wrangler יארוז ויעלה את היישום.
אם עדיין אינכם מחוברים, ה-CLI של wrangler יפתח חלון דפדפן שיבקש מכם להתחבר ללוח הבקרה של Cloudflare.
הערה
אם אתם שייכים לכמה חשבונות, בחרו את החשבון שבו אתם רוצים לפרוס את הפרויקט.
אחרי שהפריסה מסתיימת, אמתו את הפריסה בביקור בכתובת החיה שמופיעה בפלט הפריסה, כמו https://{PROJECT_NAME}.workers.dev. אם נתקלתם בבעיות, ודאו שהסודות נוספו נכון ובדקו את יומני הפריסה לאיתור שגיאות.
#השלבים הבאים
כל הכבוד על בנייה ופריסה של יישום פשוט עם Prisma Postgres ו-Cloudflare Workers.
כדי להרחיב את היישום:
- הוסיפו מטמון לשאילתות.
- עיינו בתיעוד של Prisma Postgres.
כדי לראות איך לבנות יישום בזמן אמת עם Cloudflare Workers ו-Prisma Postgres, קראו את המדריך הזה.