NOTE
**ملاحظة** — في الوقت الحالي يحتاج Prisma إلى تثبيت Node.js لتشغيل بعض كود التوليد. تأكد من تثبيت Node.js في البيئة التي تشغل فيها أوامر `bunx prisma`.#### إنشاء مشروع جديد">
أولاً، أنشئ دليلًا وتهيئه باستخدام `bun init`.
```bash
mkdir prisma-postgres-app
cd prisma-postgres-app
bun init
```
#### تثبيت تبعيات Prisma">
ثم قم بتثبيت Prisma CLI (`prisma`) و Prisma Client (`@prisma/client`) وإضافة تسريع كامتداد كتبعيات.
```bash
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerate
```
#### تهيئة Prisma مع PostgreSQL">
سنستخدم Prisma CLI مع `bunx` لتهيئة المخطط ودليل الترحيل. سنستخدم PostgreSQL كقاعدة البيانات الخاصة بنا.
```bash
bunx --bun prisma init --db
```
ينشئ هذا مخططًا أساسيًا. نحتاج إلى تحديثه لاستخدام العميل الجديد الخالي من Rust مع تحسين Bun. افتح `prisma/schema.prisma` وعدل كتلة المولد، ثم أضف نموذج `User` بسيط.
```prisma prisma/schema.prisma
generator client {
provider = "prisma-client"
output = "./generated" // [!code ++]
engineType = "client" // [!code ++]
runtime = "bun" // [!code ++]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User { // [!code ++]
id Int @id @default(autoincrement()) // [!code ++]
email String @unique // [!code ++]
name String? // [!code ++]
} // [!code ++]
```
#### تكوين اتصال قاعدة البيانات">
قم بإعداد URL قاعدة بيانات PostgreSQL في ملف `.env`.
```ini .env
DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"
```
#### إنشاء وتشغيل ترحيل قاعدة البيانات">
ثم قم بإنشاء وتشغيل الترحيل الأولي.
سينشئ هذا ملف ترحيل `.sql` في `prisma/migrations`، وينفذ الترحيل على قاعدة بيانات PostgreSQL الخاصة بك.
```bash
bunx --bun prisma migrate dev --name init
```
```txt
تم تحميل متغيرات البيئة من .env
تم تحميل مخطط Prisma من prisma/schema.prisma
مصدر البيانات "db": قاعدة بيانات PostgreSQL "mydb"، المخطط "public" على "localhost:5432"
تم تطبيق الترحيل `20250114141233_init`
تم إنشاء الترحيلات التالية وتطبيقها من تغييرات المخطط الجديدة:
prisma/migrations/
└─ 20250114141233_init/
└─ migration.sql
قاعدة البيانات الخاصة بك الآن متزامنة مع المخطط الخاص بك.
✔ تم توليد Prisma Client (6.17.1) إلى ./generated في 18ms
```
#### توليد Prisma Client">
كما هو موضح في المخرجات، يقوم Prisma بإعادة توليد _عميل Prisma_ كلما نفذنا ترحيلًا جديدًا. يوفر العميل API مكتوب بالكامل للقراءة والكتابة من قاعدة البيانات الخاصة بنا. يمكنك إعادة توليد العميل يدويًا باستخدام Prisma CLI.
```sh
bunx --bun prisma generate
```
#### تهيئة Prisma Client مع Accelerate">
الآن نحتاج إلى إنشاء مثيل عميل Prisma. أنشئ ملفًا جديدًا `prisma/db.ts` لتهيئة PrismaClient مع محول Postgres.
```ts prisma/db.ts
import { PrismaClient } from "./generated/client";
import { withAccelerate } from '@prisma/extension-accelerate'
export const prisma = new PrismaClient().$extends(withAccelerate())
```
#### إنشاء نص اختبار">
لنكتب نصًا بسيطًا لإنشاء مستخدم جديد، ثم حساب عدد المستخدمين في قاعدة البيانات.
```ts index.ts
import { prisma } from "./prisma/db";
// إنشاء مستخدم جديد
await prisma.user.create({
data: {
name: "John Dough",
email: `john-${Math.random()}@example.com`,
},
});
// حساب عدد المستخدمين
const count = await prisma.user.count();
console.log(`يوجد ${count} مستخدمين في قاعدة البيانات.`);
```
#### تشغيل واختبار التطبيق">
لنشغل هذا النص باستخدام `bun run`. في كل مرة نشغلها، يتم إنشاء مستخدم جديد.
```bash
bun run index.ts
```
```txt
يوجد 1 مستخدمين في قاعدة البيانات.
```
```bash
bun run index.ts
```
```txt
يوجد 2 مستخدمين في قاعدة البيانات.
```
```bash
bun run index.ts
```
```txt
يوجد 3 مستخدمين في قاعدة البيانات.
```
هذا كل شيء! الآن بعد أن قمت بإعداد Prisma Postgres باستخدام Bun، نوصي بالرجوع إلى الوثائق الرسمية لـ Prisma Postgres أثناء استمرار تطوير تطبيقك.