برنامه نویسی

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

Prisma.js یک ابزار مدرن پایگاه داده است که کار با پایگاه داده ها را در Node.js و برنامه های TypeScript ساده می کند. این یک روش ایمن و بصری برای تعامل با پایگاه داده ها ، توسعه سریعتر و مستعد خطا را ارائه می دهد. این راهنمای جامع همه چیزهایی را که باید در مورد آن بدانید پوشش می دهد prisma.js با mysql، از نصب و راه اندازی گرفته تا پرس و جوهای پیشرفته پایگاه داده ، مهاجرت و بهترین روشها.


فهرست مطالب

  1. مقدمه ای بر Prisma.js

  2. چرا از Prisma با MySQL استفاده می کنید؟

  3. راه اندازی Prisma با MySQL

  4. درک طرحواره Prisma

  5. اجرای مهاجرت های پایگاه داده

  6. عملیات CRUD با مشتری Prisma

  7. نمایش داده های پیشرفته در Prisma

  8. استفاده از Prisma با Express.js

  9. کار با روابط

  10. بذر پایگاه داده

  11. با استفاده از معاملات

  12. بهینه سازی عملکرد

  13. رسیدگی به خطا در Prisma

  14. استقرار بهترین روشها

  15. پایان


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 ضمن بهبود عملکرد و تجربه توسعه دهنده ، مدیریت پایگاه داده را ساده می کند. 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا