Prisma.js با Mysql – جامعه dev

Prisma.js یک ابزار مدرن پایگاه داده است که کار با پایگاه داده ها را در Node.js و برنامه های TypeScript ساده می کند. این یک روش ایمن و بصری برای تعامل با پایگاه داده ها ، توسعه سریعتر و مستعد خطا را ارائه می دهد. این راهنمای جامع همه چیزهایی را که باید در مورد آن بدانید پوشش می دهد prisma.js با mysql، از نصب و راه اندازی گرفته تا پرس و جوهای پیشرفته پایگاه داده ، مهاجرت و بهترین روشها.
فهرست مطالب
-
مقدمه ای بر Prisma.js
-
چرا از Prisma با MySQL استفاده می کنید؟
-
راه اندازی Prisma با MySQL
-
درک طرحواره Prisma
-
اجرای مهاجرت های پایگاه داده
-
عملیات CRUD با مشتری Prisma
-
نمایش داده های پیشرفته در Prisma
-
استفاده از Prisma با Express.js
-
کار با روابط
-
بذر پایگاه داده
-
با استفاده از معاملات
-
بهینه سازی عملکرد
-
رسیدگی به خطا در Prisma
-
استقرار بهترین روشها
-
پایان
1. مقدمه ای بر Prisma.js
Prisma یک است منبع باز ORM (نقشه برداری شیء) این دسترسی به پایگاه داده را در node.js و typcript برنامه ها فراهم می کند:
- مشتری مشتری: نمایش داده های دیتابیس تولید شده و از نوع ایمن.
- پریسما مهاجرت می کند: یک ابزار قدرتمند مهاجرت برای تغییر طرحواره پایگاه داده.
- استودیوی پریسما: GUI برای مشاهده و مدیریت سوابق پایگاه داده.
PRISMA پشتیبانی می کند MySQL ، PostgreSQL ، SQLite ، SQL Server ، MongoDB و CockroachDBبشر
2. چرا از Prisma با MySQL استفاده می کنید؟
Prisma یک انتخاب عالی برای کار با آن است mysql زیرا ارائه می دهد:
✅ ایمنی تایپ: انواع تایپ های تولید شده برای مدل های پایگاه داده.
✅ نمایش داده شدگان قابل خواندن: از یک نحو ساده و اعلانی استفاده می کند.
✅ مهاجرت های خودکار: کنترل تغییرات طرحواره ای را با زحمت انجام می دهد.
✅ بهینه سازی عملکرد: نمایش داده شد و بهینه سازی شده.
✅ پایگاه داده: به راحتی بین پایگاه داده ها جابجا شوید.
3. تنظیم Prisma با MySQL
مرحله 1: node.js و mysql را نصب کنید
حتماً داشته باشید node.js نصب شده MySQL را نصب کنید و یک پایگاه داده ایجاد کنید:
CREATE DATABASE mydatabase;
مرحله 2: یک پروژه Node.js را آغاز کنید
mkdir my-prisma-app
cd my-prisma-app
npm init -y
مرحله 3: مشتری Prisma و MySQL را نصب کنید
npm install prisma --save-dev
npm install @prisma/client mysql2
مرحله 4: اولیه سازی Prisma
npx prisma init
این یک ایجاد می کند prisma
پوشه با schema.prisma
پرونده
مرحله 5: پیکربندی Prisma را برای MySQL پیکربندی کنید
ویرایش کردن prisma/schema.prisma
:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}
مرحله 6: تنظیم متغیرهای محیط
ویرایش کردن .env
:
DATABASE_URL="mysql://root:password@localhost:3306/mydatabase"
4. درک طرحواره Prisma
در schema.prisma
پرونده ساختار پایگاه داده را تعریف می کند.
طرحواره مثال برای کاربران و پست ها:
model User {
id Int @id @default(autoincrement())
name String
email String @unique
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
author User @relation(fields: [userId], references: [id])
userId Int
}
-
@id
: یک کلید اصلی را تعریف می کند. -
@default(autoincrement())
: شناسه خودکار. -
@unique
: مقادیر منحصر به فرد را تضمین می کند. -
@relation
: روابط کلیدی خارجی را تعریف می کند.
5. در حال اجرا مهاجرت های پایگاه داده
ایجاد پرونده های مهاجرت:
npx prisma migrate dev --name init
اعمال مهاجرت:
npx prisma migrate deploy
مدل های پایگاه داده را بررسی کنید:
npx prisma db push
6. عملیات CRUD با مشتری Prisma
1. مشتری Prisma را وارد کنید
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
2. یک کاربر ایجاد کنید
const newUser = await prisma.user.create({
data: {
name: "John Doe",
email: "john@example.com"
}
});
console.log(newUser);
3. کاربران را بخوانید
const users = await prisma.user.findMany();
console.log(users);
4. کاربر را به روز کنید
const updatedUser = await prisma.user.update({
where: { id: 1 },
data: { name: "Jane Doe" }
});
console.log(updatedUser);
5. یک کاربر را حذف کنید
await prisma.user.delete({
where: { id: 1 }
});
7. نمایش داده شدگان پیشرفته در Prisma
فیلتر و مرتب سازی
const users = await prisma.user.findMany({
where: { name: { contains: "John" } },
orderBy: { name: "asc" }
});
صفحه بندی
const users = await prisma.user.findMany({
skip: 10,
take: 5
});
نمایش داده های SQL خام
const result = await prisma.$queryRaw`SELECT * FROM User`;
console.log(result);
8. با استفاده از Prisma با Express.js
Express
npm install express
یک API اکسپرس ایجاد کنید
const express = require('express');
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
const app = express();
app.use(express.json());
app.get('/users', async (req, res) => {
const users = await prisma.user.findMany();
res.json(users);
});
app.listen(3000, () => console.log('Server running on port 3000'));
9. کار با روابط
PRISMA پشتیبانی می کند یک به یک ، یک به یک و بسیاری از آنها روابط
- یک به بسیاری (کاربر → پست ها)
- بسیاری از افراد (گروه های کاربران)
به عنوان مثال رابطه بسیاری به بسیاری:
model User {
id Int @id @default(autoincrement())
name String
groups Group[] @relation("UserGroups")
}
model Group {
id Int @id @default(autoincrement())
name String
users User[] @relation("UserGroups")
}
10. بذر پایگاه داده
ایجاد کردن prisma/seed.js
:
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
await prisma.user.createMany({
data: [{ name: "Alice" }, { name: "Bob" }]
});
}
main().catch(console.error).finally(() => prisma.$disconnect());
اسکریپت بذر را اجرا کنید:
node prisma/seed.js
پایان
prisma.js با MySQL ارائه می دهد ایمن ، شهودی و کارآمد راهی برای مدیریت بانکهای اطلاعاتی. از مهاجرت و عملیات CRUD به نمایش داده شدگان پیشرفته و ادغام API، PRISMA ضمن بهبود عملکرد و تجربه توسعه دهنده ، مدیریت پایگاه داده را ساده می کند. 🚀