NOTE
**ملاحظة** — نظام تحميل الأوامر الفرعية الديناميكي الخاص بـ Prisma يتطلب حاليًا تثبيت npm بجانب Bun. يؤثر هذا على بعض أوامر CLI مثل `prisma init` و `prisma migrate` وما إلى ذلك. الكود المولد يعمل بشكل مثالي مع Bun باستخدام مولد `prisma-client` الجديد.إنشاء مشروع جديد
يعمل Prisma بشكل تلقائي مع Bun. أولاً، أنشئ دليلًا وتهيئه باستخدام bun init.
mkdir prisma-app
cd prisma-app
bun initتثبيت تبعيات Prisma
ثم قم بتثبيت Prisma CLI (prisma) و Prisma Client (@prisma/client) ومحول LibSQL كتبعيات.
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsqlتهيئة Prisma مع SQLite
سنستخدم Prisma CLI مع bunx لتهيئة المخطط ودليل الترحيل. للتبسيط سنستخدم قاعدة بيانات SQLite في الذاكرة.
bunx --bun prisma init --datasource-provider sqliteينشئ هذا مخططًا أساسيًا. نحتاج إلى تحديثه لاستخدام العميل الجديد الخالي من Rust مع تحسين Bun. افتح prisma/schema.prisma وعدل كتلة المولد، ثم أضف نموذج User بسيط.
generator client {
provider = "prisma-client"
output = "./generated"
engineType = "client"
runtime = "bun"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
} إنشاء وتشغيل ترحيل قاعدة البيانات
ثم قم بإنشاء وتشغيل الترحيل الأولي.
سينشئ هذا ملف ترحيل .sql في prisma/migrations، وينشئ مثيل SQLite جديد، وينفذ الترحيل على المثيل الجديد.
bunx --bun prisma migrate dev --name init
```
```txt
تم تحميل متغيرات البيئة من .env
تم تحميل مخطط Prisma من prisma/schema.prisma
مصدر البيانات "db": قاعدة بيانات SQLite "dev.db" على "file:./dev.db"
تم إنشاء قاعدة بيانات SQLite dev.db على file:./dev.db
تم تطبيق الترحيل `20251014141233_init`
تم إنشاء الترحيلات التالية وتطبيقها من تغييرات المخطط الجديدة:
prisma/migrations/
└─ 20251014141233_init/
└─ migration.sql
قاعدة البيانات الخاصة بك الآن متزامنة مع المخطط الخاص بك.
✔ تم توليد Prisma Client (6.17.1) إلى ./generated في 18msتوليد Prisma Client
كما هو موضح في المخرجات، يقوم Prisma بإعادة توليد عميل Prisma كلما نفذنا ترحيلًا جديدًا. يوفر العميل API مكتوب بالكامل للقراءة والكتابة من قاعدة البيانات الخاصة بنا. يمكنك إعادة توليد العميل يدويًا باستخدام Prisma CLI.
bunx --bun prisma generateتهيئة Prisma Client مع LibSQL
الآن نحتاج إلى إنشاء مثيل عميل Prisma. أنشئ ملفًا جديدًا prisma/db.ts لتهيئة PrismaClient مع محول LibSQL.
import { PrismaClient } from "./generated/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";
const adapter = new PrismaLibSQL({ url: process.env.DATABASE_URL || "" });
export const prisma = new PrismaClient({ adapter });إنشاء نص اختبار
لنكتب نصًا بسيطًا لإنشاء مستخدم جديد، ثم حساب عدد المستخدمين في قاعدة البيانات.
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. في كل مرة نشغلها، يتم إنشاء مستخدم جديد.
bun run index.tsتم إنشاء john-0.12802932895402364@example.com
يوجد 1 مستخدمين في قاعدة البيانات.bun run index.tsتم إنشاء john-0.8671308799782803@example.com
يوجد 2 مستخدمين في قاعدة البيانات.bun run index.tsتم إنشاء john-0.4465968383115295@example.com
يوجد 3 مستخدمين في قاعدة البيانات.هذا كل شيء! الآن بعد أن قمت بإعداد Prisma باستخدام Bun، نوصي بالرجوع إلى الوثائق الرسمية لـ Prisma أثناء استمرار تطوير تطبيقك.