إعداد Prisma ORM
اضبط Prisma ORM وادمجه في مشروع Next.js للتفاعل مع قواعد بيانات متنوعة
إعداد Prisma ORM درس مجاني في Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Next.js 15 Fullstack (App Router + Server Actions)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What is an ORM?
Welcome! In this lesson, we'll set up Prisma ORM in a Next.js project. But first, what's an ORM?
- ORM stands for Object-Relational Mapping.
- It's a technique that lets you interact with your database using your programming language's objects instead of writing raw SQL.
- Think of it as a translator between your code (e.g., JavaScript objects) and your database (e.g., SQL tables).
Why Choose Prisma?
Prisma is a modern ORM that's popular with Next.js for good reasons:
- Type Safety: It generates a type-safe client, preventing many runtime errors.
- Developer Experience: Intuitive API, powerful migrations, and automatic code completion.
- Modern Stack: Designed for TypeScript and modern JavaScript, fitting perfectly with Next.js.
- Database Support: Works with PostgreSQL, MySQL, SQLite, SQL Server, and MongoDB.
Installing Prisma
Let's start by adding Prisma to your Next.js project. You'll need two main packages:
prisma: The Prisma CLI (Command Line Interface) for development tasks.@prisma/client: The Prisma Client library for interacting with your database in code.
Run this command in your project's root:
npm install prisma @prisma/clientInitialize Prisma
After installation, you need to initialize Prisma in your project. This command sets up the basic Prisma structure, including the prisma/schema.prisma file.
It also creates a .env file to hold your database connection string.
npx prisma initConnect Your Database
The .env file created by prisma init contains a DATABASE_URL variable. This is where you tell Prisma how to connect to your database.
For local development, SQLite is often used for simplicity. For production, you might use PostgreSQL or MySQL.
# .env
DATABASE_URL="postgresql://user:password@host:port/database?schema=public"
# Example for SQLite (local file)
# DATABASE_URL="file:./dev.db"The Prisma Schema File
Your prisma/schema.prisma file is the heart of your Prisma setup. It defines three key blocks:
datasource: Specifies your database provider (e.g.,postgresql,sqlite).generator: Configures the Prisma Client (usuallyprisma-client-js).model: Defines your database tables (models) and their fields.
Defining Your First Model
Let's define a simple User model in your prisma/schema.prisma file. This model will represent a table in your database.
id: Unique identifier, auto-incrementing.email: User's email, must be unique.name: User's name, optional.
// prisma/schema.prisma
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}Generating Prisma Client
After defining or changing your models in schema.prisma, you must generate the Prisma Client. This command reads your schema and creates the type-safe client library.
This client is what you'll import and use in your Next.js application to interact with your database.
npx prisma generateApplying Migrations
To create or update your database tables based on your schema.prisma, you use migrations. The migrate dev command:
- Compares your schema to the database.
- Generates SQL migration files.
- Applies these migrations to your database.
It also generates the Prisma Client automatically after migration.
npx prisma migrate dev --name initUsing Prisma Client
Once Prisma is set up and generated, you can use the PrismaClient in your Next.js server components or API routes to perform database operations. Here's a basic example:
import { PrismaClient } from '@prisma/client';
async function main() {
const prisma = new PrismaClient();
console.log("Prisma Client successfully initialized!");
// In a real app, you'd perform database operations:
// const users = await prisma.user.findMany();
// console.log(users);
await prisma.$disconnect();
console.log("Prisma Client disconnected.");
}
main().catch(console.error);Quick Check: Prisma Commands
You've learned about several key Prisma CLI commands. Which command is used to generate the type-safe Prisma Client after you've modified your schema.prisma file?
Recap: Setting Up Prisma
Great job! You've learned the essential steps to integrate Prisma ORM into your Next.js project:
- Installed Prisma CLI and client.
- Initialized Prisma and configured your database URL.
- Defined data models in
schema.prisma. - Generated the Prisma Client.
- Applied migrations to sync your schema with the database.
- Understood how to instantiate and use
PrismaClient.
Next, we'll dive into performing CRUD operations with Prisma!
الأسئلة الشائعة
هل درس «إعداد Prisma ORM» مجاني؟
نعم — نص درس «إعداد Prisma ORM» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Next.js 15 Fullstack (App Router + Server Actions)، انتقل إلى CoddyKit PRO. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.
ماذا ستتعلم في «إعداد Prisma ORM»؟
اضبط Prisma ORM وادمجه في مشروع Next.js للتفاعل مع قواعد بيانات متنوعة تتمرن على Next.js 15 Fullstack (App Router + Server Actions) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Next.js 15 Fullstack (App Router + Server Actions)؟
لا تُشترط خبرة سابقة. Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «إعداد Prisma ORM»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Next.js 15 Fullstack (App Router + Server Actions) هذا؟
نعم. كل درس في Next.js 15 Fullstack (App Router + Server Actions) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إعداد Prisma ORM
- عمليات CRUD باستخدام Server Actions
- ترحيلات مخطط قاعدة البيانات
- تهيئة قاعدة البيانات وتجميع الاتصالات