Prisma का परिचय: TypeScript के लिए आधुनिक ORM
Prisma एक आधुनिक ORM (Object-Relational Mapping) है जो TypeScript और Node.js के लिए डिज़ाइन किया गया है। यह डेटाबेस के साथ काम करने के तरीके को पूरी तरह से बदल देता है। पारंपरिक ORM जैसे Sequelize या TypeORM के विपरीत, Prisma एक डिक्लेरेटिव डेटा मॉडल, ऑटोमैटिक टाइप जनरेशन और एक सहज API प्रदान करता है। यह लाइब्रेरी PostgreSQL, MySQL, SQLite, SQL Server, MongoDB और CockroachDB को सपोर्ट करती है।
Prisma का मुख्य उद्देश्य डेटाबेस के साथ काम को सुरक्षित, तेज़ और आसान बनाना है। TypeScript के साथ एकीकरण के कारण, आपको कंपाइल टाइम पर ऑटो-कम्प्लीशन और टाइप चेकिंग मिलती है, जिससे रनटाइम एरर काफी कम हो जाते हैं। Prisma तीन मुख्य घटकों से बना है:
- Prisma Client — डेटाबेस के साथ काम करने के लिए ऑटोमैटिकली जनरेटेड क्लाइंट
- Prisma Migrate — माइग्रेशन प्रबंधन प्रणाली
- Prisma Studio — डेटा देखने और संपादित करने के लिए GUI
Prisma इंस्टॉलेशन
TypeScript प्रोजेक्ट में Prisma इंस्टॉल करना npm के माध्यम से किया जाता है। पहले एक नया प्रोजेक्ट बनाएं:
mkdir my-prisma-project
cd my-prisma-project
npm init -y
Prisma CLI और Prisma Client इंस्टॉल करें:
npm install prisma @prisma/client --save
प्रोजेक्ट में Prisma को इनिशियलाइज़ करें:
npx prisma init
यह कमांड prisma डायरेक्टरी में schema.prisma फ़ाइल और एनवायरनमेंट वेरिएबल्स के लिए .env फ़ाइल बनाएगा।
त्वरित शुरुआत: कोड उदाहरण
यूज़र्स को मैनेज करने के लिए एक सरल ऐप बनाते हैं। पहले prisma/schema.prisma में मॉडल डिफ़ाइन करें:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
posts Post[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
SQLite में टेबल बनाने के लिए माइग्रेशन चलाएं:
npx prisma migrate dev --name init
अब index.ts फ़ाइल बनाएं और उपयोग का उदाहरण देखें:
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {
// यूज़र बनाना
const user = await prisma.user.create({
data: {
email: 'alice@example.com',
name: 'Alice',
posts: {
create: { title: 'Hello World' }
}
}
})
console.log('Created user:', user)
// सभी यूज़र्स को उनके पोस्ट के साथ प्राप्त करना
const users = await prisma.user.findMany({
include: { posts: true }
})
console.log('All users:', JSON.stringify(users, null, 2))
}
main()
.catch(e => console.error(e))
.finally(async () => await prisma.$disconnect())
कोड चलाएं:
npx ts-node index.ts
Prisma Client के मुख्य तरीके
1. findUnique
क्या करता है: यूनिक आइडेंटिफ़ायर (id, email आदि) के आधार पर एक रिकॉर्ड ढूंढता है।
पैरामीटर:
where— सर्च शर्तों वाला ऑब्जेक्ट (आवश्यक)include— (वैकल्पिक) संबंधित मॉडल शामिल करने के लिएselect— (वैकल्पिक) विशिष्ट फ़ील्ड चुनने के लिए
उदाहरण:
const user = await prisma.user.findUnique({
where: { email: 'alice@example.com' },
include: { posts: true }
})
2. findFirst
पुस्तकालय में भी
Java के लिए HTTP क्लाइंट: HTTP के साथ काम करने के लिए शीर्ष लाइब्रेरीज़
JavaScript (Node.js) से SMS भेजना: API लाइब्रेरी और कोड उदाहरण
Swift (iOS/macOS) में CSV के साथ कार्य — लाइब्रेरीज़ और कोड उदाहरण
Flurl C# (.NET) पूर्ण गाइड: उदाहरण, स्थापना और उपयोग