7.10.0)، وهو الإصدار المستقر الحالي.
المتطلبات الأساسية
- Node.js بالإصدار 20.19 أو 22.12 أو 24 فما فوق
- خدمة ClickHouse Managed Postgres
psql، لإنشاء قاعدة البيانات. ويمكنك أيضًا تنفيذ عبارةCREATE DATABASEفي SQL console.- على نظام macOS: Docker، لتشغيل Prisma Migrate (راجع تشغيل الترحيل)
إنشاء خدمة ClickHouse Managed Postgres
في وحدة تحكم ClickHouse Cloud، انقر على New service ثم اختر Postgres. سيصبح المثيل جاهزًا في غضون دقائق قليلة. للاطلاع على شرح مفصّل للخطوات، راجع دليل البدء السريع.احصل على بيانات الاتصال
انقر على Connect في الشريط الجانبي الأيسر لخدمتك. تعرض النافذة المنبثقة اسم المستخدم وكلمة المرور والخادم والمنفذ، إلى جانب سلاسل اتصال جاهزة للاستخدام. يستخدم هذا الدليل اتصالين، لأن Prisma يتضمن مكوّنين يتواصلان مع قاعدة البيانات:- تطبيقك (Prisma Client) يتصل عبر PgBouncer على المنفذ
6432. يتولى PgBouncer تجميع الاتصالات، ما يتيح للعديد من عمليات التطبيق أو مثيلات serverless مشاركة عدد محدود من الاتصالات الخلفية بـ Postgres. - واجهة سطر الأوامر الخاصة بـ Prisma (Prisma Migrate) تتصل مباشرةً على المنفذ
5432. يحصل Prisma Migrate على قفل استشاري على مستوى الـ session طوال مدة تشغيله. وفي وضع تجميع المعاملات (transaction pooling) في PgBouncer، قد يظل هذا القفل محجوزًا على اتصال خلفي مُجمَّع يخدم عملاء آخرين لاحقًا، فتتعطل عمليات الترحيل التالية في انتظار تحريره.
<service-name>-ca-certificate.pem، ويمكنك العثور عليه أيضًا ضمن Settings → CA Certificate. هذه الشهادة خاصة بمثيلك وحده، وتستخدمها للاتصال مع sslmode=verify-full، الذي يتحقق من أنك تتصل بخادمك أنت فعلًا.
إعداد المشروع
أنشئ مشروع TypeScript، ثم ثبّت واجهة سطر الأوامر الخاصة بـ Prisma، وPrisma Client، وadapter المشغّل node-postgres، وdotenv:
ثبّت
prisma@7 و@prisma/client@7 صراحةً. فحتى وقت كتابة هذا الدليل، يشير الوسم latest للحزمة prisma في npm إلى إصدار مرشح من Prisma 8، يعتمد طريقة إعداد تختلف عن تلك الموضحة في هذا الدليل.tsconfig.json:
تهيئة Prisma
1
تشغيل prisma init
prisma/schema.prisma وملف إعداد Prisma المسمى prisma7.config.ts، ويضيف عنصرًا نائبًا للمتغير DATABASE_URL إلى .env والعميل المُولَّد إلى .gitignore (مع إنشاء أيٍّ من الملفين عند الحاجة)، كما يضيف مهارات Prisma لوكلاء البرمجة المعتمدين على الذكاء الاصطناعي. تُسمّي إصدارات Prisma 7.10 وما بعدها ملف الإعداد prisma7.config.ts تجنّبًا للتعارض مع صيغة Prisma 8.2
إضافة شهادة CA
انقل شهادة CA التي نزّلتها إلى الدليل الجذر للمشروع وأعد تسميتها إلى تُحدَّد مسارات الشهادات النسبية انطلاقًا من الدليل الذي تشغّل منه الأوامر، لذا شغّل جميع الأوامر الواردة في هذا الشرح من الدليل الجذر للمشروع.
ca-certificate.pem:تهيئة الاتصال
1
إنشاء قاعدة بيانات
أنشئ قاعدة بيانات للتطبيق. استبدل
<PASSWORD> والمضيف بالقيم الظاهرة في النافذة المنبثقة Connect:2
تعيين عناوين URL للاتصال
في الملف يستخدم العنوانان معلمات TLS مختلفة لأن كلًّا منهما يقرؤه مشغّل مختلف:
.env، استبدل العنصر النائب DATABASE_URL الذي أضافه الأمر prisma init بعنواني URL الاتصال التاليين، ويشير كلاهما إلى قاعدة البيانات guide_prisma. استخدم كلمة المرور الظاهرة في النافذة المنبثقة Connect:DATABASE_URLيقرؤه node-postgres عبر@prisma/adapter-pg، وهو يدعم معلماتsslmode=verify-full&sslrootcert=...القياسية، أي المعلمات نفسها المعروضة في النافذة المنبثقة Connect.DIRECT_URLيقرؤه محرك المخطط التابع لواجهة سطر الأوامر في Prisma، وله معلماته الخاصة:sslcertهو مسار شهادة CA، وsslaccept=strictيفعّل التحقق من الشهادة ومن اسم المضيف.
3
توجيه Prisma CLI إلى الاتصال المباشر
استبدل محتويات الملف في Prisma 7، لا يُستخدم عنوان URL الموجود في ملف الإعداد إلا من قِبل واجهة سطر الأوامر. أما Prisma Client فيحصل على اتصاله من adapter المشغّل، الذي ستهيّئه في الاستعلام عن قاعدة البيانات.
prisma7.config.ts بما يلي:تعريف المخطط وتشغيل عملية الترحيل
1
إضافة نموذج
أضف النموذج
Todo إلى نهاية الملف prisma/schema.prisma:2
تشغيل عملية الترحيل
على Linux، شغّل Prisma Migrate مباشرةً:على macOS، شغّل الأمر نفسه داخل حاوية Linux:تُنشئ Prisma ملف ترحيل SQL في
prisma/migrations/ ثم تطبّقه:3
توليد Prisma Client
generated/prisma. ولأن هذا الأمر لا يتصل بقاعدة البيانات، يمكنك تشغيله على أي منصة.الاستعلام من قاعدة البيانات
1
إنشاء Prisma Client
أنشئ الملف
lib/prisma.ts. يتصل الـ adapter المسمى PrismaPg باستخدام DATABASE_URL عبر PgBouncer:2
تشغيل استعلامات CRUD
أنشئ الملف شغّله:
script.ts:3
تقديم البيانات عبر HTTP
أنشئ الملف شغّل الخادم:في طرفية أخرى، أضف مهمتين:افتح http://localhost:3000/todos في متصفحك لعرضهما. ستبدو الاستجابة على النحو التالي:
server.ts، وهو خادم HTTP بسيط يُنشئ المهام عبر POST /todos ويعرضها عند تلقّي أي طلب GET:التحقق في SQL console
في وحدة تحكم ClickHouse Cloud، افتح SQL console الخاصة بخدمتك، ثم وسّع قاعدة بياناتك والمخططpublic، واختر الجدول Todo. ستجد أيضًا الجدول _prisma_migrations، الذي يسجّل فيه Prisma Migrate عمليات الترحيل المطبّقة.
يحتوي الجدول Todo على الصفّين اللذين أضفتهما عبر نقطة نهاية HTTP:
استكشاف الأخطاء وإصلاحها
الخطوات التالية
- الاتصال: سلاسل الاتصال وPgBouncer وTLS
- الإعدادات: ضبط معلمات Postgres وPgBouncer
- النسخ المتماثلة للقراءة: توسيع نطاق أعباء العمل كثيفة القراءة
- التطوير المحلي: التطوير على نسخة Postgres محلية في Docker
- Prisma Migrate في بيئة الإنتاج: استخدم
prisma migrate deployضمن مسار CI لديك