prisma

استقرار Prisma

(Prisma ORM)

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

در صورتی که تمایلی به خواندن آموزش متنی ندارید می‌توانید ویدیوی آموزشی زیر ‌را مشاهده کنید.

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

در ابتدا باید با اجرای دستور زیر در خط فرمان سیستم خود، فایل‌های 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را طبق مستندات تنظیم متغیرها، در متغیرهای محیطی برنامه‌ی خود تنظیم کنید:

DATABASE_URL=postgresql://USERNAME:PASSWORD@HOST:PORT/postgres

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

در ادامه، باید طبق مستندات ایجاد دیسک یک دیسک به نام prisma (یا هر نام دلخواه دیگری) در برنامه خود ایجاد کنید و به واسطه فایل liara.json زیر که باید در مسیر اصلی پروژه خود ایجاد کنید، آن دیسک را به برنامه متصل کنید:

{
    "disks":[
        {
            "name": "prisma",
            "mountTo": "prisma/migrations"
        }
    ]
}

درنهایت می‌توانید با اجرای دستورliara deploy، پروژه‌ی خود را در لیارا مستقر کنید.

اعمال Migrationها

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

liara shell -c "npx prisma migrate deploy"
اگر که در اجرای دستور فوق با خطای Read-Only مواجه شدید کافیست تا فایل‌سیستم برنامه خود را موقتاً خاموش کرده، دستور را اجرا کرده و سپس آن را مجدداً روشن کنید.
;