البدء السريع • الموقع الإلكتروني • المستندات • الأمثلة • المدونة • الخلاف • تويتر
Prisma ORM هو ORM من الجيل التالي يتكون من هذه الأدوات:
Prisma Client : منشئ الاستعلامات الذي يتم إنشاؤه تلقائيًا وآمن للنوع لـ Node.js وTypeScript
Prisma Migrate : نمذجة البيانات التعريفية ونظام الترحيل
Prisma Studio : واجهة المستخدم الرسومية لعرض البيانات وتحريرها في قاعدة البيانات الخاصة بك
يمكن استخدام Prisma Client في أي تطبيق خلفي لـ Node.js أو TypeScript (بما في ذلك التطبيقات بدون خادم والخدمات الصغيرة). يمكن أن تكون هذه واجهة برمجة تطبيقات REST، أو واجهة برمجة تطبيقات GraphQL، أو واجهة برمجة تطبيقات gRPC، أو أي شيء آخر يحتاج إلى قاعدة بيانات.
إذا كنت بحاجة إلى قاعدة بيانات لاستخدامها مع Prisma ORM، فراجع Prisma Postgres.
يمكن توسيع Prisma ORM أيضًا باستخدام منتجات Prisma هذه:
Prisma Accelerate: ذاكرة تخزين مؤقت لقاعدة البيانات العالمية مع تجمع اتصالات قابل للتطوير
Prisma Pulse: أحداث قاعدة بيانات في الوقت الفعلي مع اشتراكات آمنة
Prisma Optimize: تحسين الاستعلامات ورؤى الأداء المدعومة بالذكاء الاصطناعي
Prisma Studio: محرر مرئي للبيانات الموجودة في قاعدة بياناتك
أسرع طريقة لبدء استخدام Prisma هي اتباع أدلة البدء السريع. يمكنك اختيار إحدى قاعدتي البيانات:
بريزما بوستجرس
سكليتي
إذا كان لديك بالفعل قاعدة البيانات الخاصة بك، فيمكنك اتباع هذه الأدلة:
إضافة Prisma إلى مشروع موجود
قم بإعداد مشروع جديد باستخدام Prisma من الصفر
يقدم هذا القسم نظرة عامة عالية المستوى حول كيفية عمل Prisma ORM وأهم مكوناته التقنية. للحصول على مقدمة أكثر شمولاً، قم بزيارة وثائق Prisma.
يبدأ كل مشروع يستخدم أداة من مجموعة أدوات Prisma بملف مخطط Prisma. يتيح مخطط Prisma للمطورين تحديد نماذج التطبيقات الخاصة بهم بلغة نمذجة البيانات البديهية. ويحتوي أيضًا على الاتصال بقاعدة بيانات ويحدد المولد :
// Data sourcedatasource db { Provider = "postgresql" url = env("DATABASE_URL")}// Generatorgenerator client { Provider = "prisma-client-js"}// Data modelmodel Post { id Int @id @default(autoincrement( )) عنوان سلسلة محتوى السلسلة؟ نشر مؤلف منطقي @default(false) المستخدم؟ @relation(الحقول: [authorId], المراجع: [id]) AuthorId Int?}model User { id Int @id @default(autoincrement()) email String @unique name String? المشاركات المشاركة[]}
في هذا المخطط، يمكنك تكوين ثلاثة أشياء:
مصدر البيانات : يحدد اتصال قاعدة البيانات الخاصة بك (عبر متغير بيئة)
المولد : يشير إلى أنك تريد إنشاء عميل Prisma
نموذج البيانات : يحدد نماذج التطبيق الخاصة بك
في هذه الصفحة، يكون التركيز على نموذج البيانات. يمكنك معرفة المزيد حول مصادر البيانات والمولدات على صفحات المستندات المعنية.
نموذج البيانات عبارة عن مجموعة من النماذج. النموذج له وظيفتان رئيسيتان:
تمثيل جدول في قاعدة البيانات الأساسية
توفير الأساس للاستعلامات في Prisma Client API
هناك طريقتان رئيسيتان لسير العمل "لإدراج" نموذج بيانات في مخطط Prisma الخاص بك:
إنشاء نموذج البيانات من الاستبطان في قاعدة البيانات
كتابة نموذج البيانات يدويًا وتعيينه إلى قاعدة البيانات باستخدام Prisma Migrate
بمجرد تحديد نموذج البيانات، يمكنك إنشاء Prisma Client الذي سيكشف عن CRUD والمزيد من الاستعلامات للنماذج المحددة. إذا كنت تستخدم TypeScript، فستحصل على أمان الكتابة الكامل لجميع الاستعلامات (حتى عند استرداد المجموعات الفرعية من حقول النموذج فقط).
الخطوة الأولى عند استخدام Prisma Client هي تثبيت حزمة npm الخاصة به:
npm install @prisma/client
لاحظ أن تثبيت هذه الحزمة يستدعي أمر prisma generate
الذي يقرأ مخطط Prisma الخاص بك ويقوم بإنشاء كود Prisma Client. سيكون الكود موجودًا في node_modules/.prisma/client
، والذي يتم تصديره بواسطة node_modules/@prisma/client/index.d.ts
.
بعد تغيير نموذج البيانات الخاص بك، ستحتاج إلى إعادة إنشاء Prisma Client يدويًا لضمان تحديث التعليمات البرمجية الموجودة داخل node_modules/.prisma/client
:
npx prisma generate
راجع الوثائق للحصول على مزيد من المعلومات حول "إنشاء عميل Prisma".
بمجرد إنشاء عميل Prisma، يمكنك استيراده إلى التعليمات البرمجية الخاصة بك وإرسال الاستعلامات إلى قاعدة البيانات الخاصة بك. هذا ما يبدو عليه رمز الإعداد.
يمكنك استيراد Prisma Client وإنشاء مثيل له على النحو التالي:
استيراد { PrismaClient } من '@prisma/client'const prisma = new PrismaClient()
أو
const { PrismaClient } = require('@prisma/client')const prisma = new PrismaClient()
يمكنك الآن البدء في إرسال الاستعلامات عبر واجهة برمجة تطبيقات Prisma Client التي تم إنشاؤها، إليك بعض نماذج الاستعلامات. لاحظ أن جميع استعلامات Prisma Client تُرجع كائنات JavaScript قديمة عادية .
تعرف على المزيد حول العمليات المتاحة في مستندات Prisma Client أو شاهد هذا الفيديو التوضيحي (دقيقتان).
User
من قاعدة البيانات// تشغيل داخل وظيفة `async`const allUsers = انتظار prisma.user.findMany()
posts
على كل كائن User
تم إرجاعه// تشغيل داخل وظيفة `async` const allUsers = انتظار prisma.user.findMany({ include: { posts: true },})
Post
التي تحتوي على "prisma"
// تشغيل داخل `async` functionconst filteredPosts = انتظار prisma.post.findMany({ حيث: { OR: [{ title: { يحتوي على: 'prisma' } }, { content: { يحتوي على: 'prisma' } }], } ، })
User
جديد وسجل Post
جديد في نفس الاستعلام// تشغيل داخل `async` functionconst user = Wait prisma.user.create({ data: { name: 'Alice'، البريد الإلكتروني: '[email protected]'، المشاركات: { create: { title: 'انضم إلينا في Prisma يوم 2021' }, }, },})
Post
موجود// تشغيل داخل وظيفة غير متزامنة functionconst post = انتظار prisma.post.update({ أين: { المعرف: 42 }، البيانات: { منشورة: صحيح }،})
لاحظ أنه عند استخدام TypeScript، سيتم كتابة نتيجة هذا الاستعلام بشكل ثابت بحيث لا يمكنك الوصول عن طريق الخطأ إلى خاصية غير موجودة (ويتم اكتشاف أي أخطاء مطبعية في وقت الترجمة). تعرف على المزيد حول الاستفادة من الأنواع التي تم إنشاؤها بواسطة Prisma Client في صفحة الاستخدام المتقدم للأنواع التي تم إنشاؤها في المستندات.
تمتلك Prisma مجتمعًا كبيرًا وداعمًا من مطوري التطبيقات المتحمسين. يمكنك الانضمام إلينا على Discord وهنا على GitHub.
هل صممت شيئًا رائعًا باستخدام Prisma؟ ؟ أظهر ذلك باستخدام هذه الشارات، المثالية لملفك التمهيدي أو موقع الويب الخاص بك.
[![Made with Prisma](http://made-with.prisma.io/dark.svg)](https://prisma.io)
[![Made with Prisma](http://made-with.prisma.io/indigo.svg)](https://prisma.io)
إذا كانت لديك مشكلة أمنية تريد الإبلاغ عنها، فيرجى الاتصال بنا على العنوان التالي:[email protected].
يمكنك طرح الأسئلة وبدء المناقشات حول الموضوعات المتعلقة بـ Prisma في مستودع prisma
على GitHub.
؟ اطرح سؤالاً
إذا رأيت رسالة خطأ أو واجهت مشكلة، فيرجى التأكد من إنشاء تقرير خطأ! يمكنك العثور على أفضل الممارسات لإنشاء تقارير الأخطاء (مثل تضمين مخرجات تصحيح الأخطاء الإضافية) في المستندات.
؟ إنشاء تقرير الأخطاء
إذا لم يكن لدى Prisma حاليًا ميزة معينة، فتأكد من مراجعة خريطة الطريق لمعرفة ما إذا كان هذا مخططًا بالفعل للمستقبل.
إذا كانت الميزة الموجودة في خريطة الطريق مرتبطة بمشكلة GitHub، فيرجى التأكد من ترك علامة ؟ رد فعل على المشكلة ومن الأفضل التعليق بأفكارك حول الميزة!
؟ إرسال طلب الميزة
ارجع إلى إرشادات المساهمة ومدونة قواعد السلوك للمساهمين.
حالة اختبارات بريزما:
حالة اختبارات النظام البيئي: