اتصال به دیتابیس با استفاده از Prisma در برنامه‌های NodeJS



پروژه و کدهای مورد استفاده در ویدیوی فوق در اینجا قابل مشاهده و دسترسی است.

Prisma یک ORM برای NodeJS و زبان TypeScript است که بسیاری از مشکل‌های ORMهای دیگر در آن برطرف شده و به شما امکان اتصال و اجرای کوئری بر روی دیتابیس‌های PostgreSQL, MySQL, SQL Server, SQLite و MongoDB را می‌دهد.

برای استفاده از این ORM، در ابتدا باید با اجرای دستور زیر در خط فرمان سیستم خود، فایل‌های Migration را ایجاد کنید:

کپی
npx prisma migrate dev --name init --create-only

سپس، باید در بخش scripts فایل package.json، اسکریپت build را به‌صورت زیر بنویسید:

کپی
"scripts": {
  "build": "npx prisma generate",
},

اگر که از قبل اسکریپت build را تعریف کرده بودید؛ می‌توانید با استفاده از عملگر && دستور مربوط به Prisma را نیز، به اسکریپت خود اضافه کنید، به عنوان مثال:

کپی
"scripts": {
  "build": "npx prisma generate && webpack --watch"
},

همچنین باید متغیر DATABASE_URL را طبق مستندات تنظیم متغیرهای محیطی در برنامه، به برنامه خود اضافه کنید. در مثال زیر از دیتابیس PostgreSQL استفاده شده است:

کپی
DATABASE_URL=postgresql://USERNAME:PASSWORD@HOST:PORT/postgres

اگر که از دیتابیس لیارا استفاده می‌کنید؛ توصیه می‌شود هم برنامه و هم دیتابیس را در یک شبکه خصوصی قرار دهید و برای ایجاد اتصال ایمن و مطمئن از URI شبکه خصوصی دیتابیس استفاده کنید.

در ادامه، باید طبق مستندات مربوط به ایجاد دیسک، یک دیسک به نام prisma (یا هر نام دلخواه دیگری) و اندازه موردنیاز در برنامه خود ایجاد کنید. سپس با یکی از روش‌های زیر، مراحل باقی‌مانده را پیش ببرید:

در ابتدا کافیست تا پروژه را در Console مستقر کنید و در مرحله اتصال دیسک به برنامه، مسیر دیسک را prisma/migrations قرار دهید. و ادامه فرایند استقرار را جلو ببرید.

پس از استقرار موفق پروژه می‌توانید دستور زیر را برای اعمال Migrationها در خط فرمان سیستم خود اجرا کنید:

کپی
liara shell -c "npx prisma migrate deploy"

اگر که در اجرای دستور فوق با خطای ReadOnly مواجه شدید کافیست تا طبق مستندات فایل‌سیستم، فایل‌سیستم ReadOnly برنامه خود را موقتاً به Writable تغییر داده، دستور را اجرا کرده و سپس آن را مجدداً به حالت قبلی، برگردانید.