מדריך קלאודפלייר בעברית

תיעוד 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 prisma

yarn

yarn add -D prisma

pnpm

pnpm add -D prisma

bun

bun add -d prisma

התקינו את הרחבת הלקוח Prisma Accelerate, כי היא נדרשת עבור Prisma Postgres:

npm

npm i @prisma/extension-accelerate

yarn

yarn add @prisma/extension-accelerate

pnpm

pnpm add @prisma/extension-accelerate

bun

bun add @prisma/extension-accelerate

התקינו את חבילת dotenv-cli כדי לטעון משתני סביבה מ-.dev.vars:

npm

npm i -D dotenv-cli

yarn

yarn add -D dotenv-cli

pnpm

pnpm add -D dotenv-cli

bun

bun add -d dotenv-cli

#2.2. יצירת מסד נתונים Prisma Postgres ואתחול Prisma

אתחלו את Prisma ביישום:

npm

npx prisma@latest init --db

yarn

yarn dlx prisma@latest init --db

pnpm

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.

כדי להרחיב את היישום:

כדי לראות איך לבנות יישום בזמן אמת עם Cloudflare Workers ו-Prisma Postgres, קראו את המדריך הזה.