Skip to content

NOTE

**ملاحظة** — نظام تحميل الأوامر الفرعية الديناميكي الخاص بـ Prisma يتطلب حاليًا تثبيت npm بجانب Bun. يؤثر هذا على بعض أوامر CLI مثل `prisma init` و `prisma migrate` وما إلى ذلك. الكود المولد يعمل بشكل مثالي مع Bun باستخدام مولد `prisma-client` الجديد.

إنشاء مشروع جديد

يعمل Prisma بشكل تلقائي مع Bun. أولاً، أنشئ دليلًا وتهيئه باستخدام bun init.

bash
mkdir prisma-app
cd prisma-app
bun init

تثبيت تبعيات Prisma

ثم قم بتثبيت Prisma CLI (prisma) و Prisma Client (@prisma/client) ومحول LibSQL كتبعيات.

bash
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsql

تهيئة Prisma مع SQLite

سنستخدم Prisma CLI مع bunx لتهيئة المخطط ودليل الترحيل. للتبسيط سنستخدم قاعدة بيانات SQLite في الذاكرة.

bash
bunx --bun prisma init --datasource-provider sqlite

ينشئ هذا مخططًا أساسيًا. نحتاج إلى تحديثه لاستخدام العميل الجديد الخالي من Rust مع تحسين Bun. افتح prisma/schema.prisma وعدل كتلة المولد، ثم أضف نموذج User بسيط.

prisma
	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 جديد، وينفذ الترحيل على المثيل الجديد.

bash
	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.

sh
bunx --bun prisma generate

تهيئة Prisma Client مع LibSQL

الآن نحتاج إلى إنشاء مثيل عميل Prisma. أنشئ ملفًا جديدًا prisma/db.ts لتهيئة PrismaClient مع محول LibSQL.

ts
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 });

إنشاء نص اختبار

لنكتب نصًا بسيطًا لإنشاء مستخدم جديد، ثم حساب عدد المستخدمين في قاعدة البيانات.

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
تم إنشاء john-0.12802932895402364@example.com
يوجد 1 مستخدمين في قاعدة البيانات.
bash
bun run index.ts
txt
تم إنشاء john-0.8671308799782803@example.com
يوجد 2 مستخدمين في قاعدة البيانات.
bash
bun run index.ts
txt
تم إنشاء john-0.4465968383115295@example.com
يوجد 3 مستخدمين في قاعدة البيانات.

هذا كل شيء! الآن بعد أن قمت بإعداد Prisma باستخدام Bun، نوصي بالرجوع إلى الوثائق الرسمية لـ Prisma أثناء استمرار تطوير تطبيقك.

Bun بواسطة www.bunjs.com.cn تحرير