Drizzle ORM TypeScript के लिए: पूर्ण गाइड
1. Drizzle ORM क्या है और इसकी आवश्यकता क्यों है?
Drizzle ORM एक आधुनिक, हल्की और type-safe ORM (Object-Relational Mapping) लाइब्रेरी है जो TypeScript और JavaScript के लिए डिज़ाइन की गई है। TypeORM या Sequelize जैसी भारी-भरकम ORM के विपरीत, Drizzle प्रदर्शन, पूर्वानुमान और TypeScript के टाइप सिस्टम के साथ पूर्ण एकीकरण पर केंद्रित है। यह SQL को छिपाने की कोशिश नहीं करती, बल्कि SQL क्वेरी लिखने का एक सुविधाजनक और टाइप-सुरक्षित तरीका प्रदान करती है, साथ ही जनरेटेड कोड पर पूर्ण नियंत्रण बनाए रखती है।
Drizzle का मुख्य उद्देश्य डेवलपर को कच्ची SQL स्ट्रिंग लिखने और क्वेरी परिणामों को मैन्युअल रूप से टाइप करने से मुक्त करना है। आप TypeScript कोड में डेटाबेस स्कीमा को परिभाषित करते हैं, और Drizzle स्वचालित रूप से सभी टेबलों, संबंधों और क्वेरी के लिए टाइप निकालता है। इसका मतलब है कि गलत कॉलम नाम, गलत डेटा प्रकार या गायब फ़ील्ड से संबंधित त्रुटियां रनटाइम के बजाय कंपाइलेशन के समय पकड़ी जाएंगी। यह लाइब्रेरी PostgreSQL, MySQL, SQLite और अन्य लोकप्रिय डेटाबेस को सपोर्ट करती है।
Drizzle उन प्रोजेक्ट्स के लिए आदर्श है जहां प्रदर्शन और SQL पर नियंत्रण महत्वपूर्ण है, लेकिन साथ ही ORM की सुविधाएं जैसे IDE में ऑटो-कम्प्लीशन, टाइप चेकिंग और डिक्लेरेटिव स्कीमा विवरण चाहिए। इसका उपयोग अक्सर Next.js, NestJS, Express और अन्य फ्रेमवर्क के साथ किया जाता है। अपनी हल्की प्रकृति (लगभग 7KB gzipped) और जादू की अनुपस्थिति के कारण, Drizzle छोटे प्रोजेक्ट से लेकर बड़े एंटरप्राइज एप्लिकेशन तक के लिए एक उत्कृष्ट विकल्प है।
2. इंस्टॉलेशन
Drizzle ORM और इसके CLI टूल (Drizzle Kit) की इंस्टॉलेशन npm या yarn के माध्यम से की जाती है। ड्राइवर का चुनाव आपके द्वारा उपयोग किए जाने वाले डेटाबेस पर निर्भर करता है।
# PostgreSQL के लिए
npm install drizzle-orm pg
npm install -D drizzle-kit @types/pg
# MySQL के लिए
npm install drizzle-orm mysql2
npm install -D drizzle-kit @types/node
# SQLite के लिए
npm install drizzle-orm better-sqlite3
npm install -D drizzle-kit @types/better-sqlite3
इंस्टॉलेशन के बाद, Drizzle Kit के लिए एक कॉन्फ़िगरेशन फ़ाइल drizzle.config.ts बनाना आवश्यक है:
import type { Config } from "drizzle-kit";
export default {
schema: "./src/db/schema.ts",
out: "./drizzle",
dialect: "postgresql", // या "mysql", "sqlite"
dbCredentials: {
url: process.env.DATABASE_URL!,
},
} satisfies Config;
3. त्वरित शुरुआत
PostgreSQL के लिए एक न्यूनतम कार्यशील उदाहरण। पहले स्कीमा को परिभाषित करें, फिर कनेक्शन बनाएं और क्वेरी निष्पादित करें।
// src/db/schema.ts
import { pgTable, serial, text, integer } from "drizzle-orm/pg-core";
export const users = pgTable("users", {
id: serial("id").primaryKey(),
name: text("name").notNull(),
age: integer("age"),
});
// src/index.ts
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
import { users } from "./db/schema";
import { eq } from "drizzle-orm";
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
const db = drizzle(pool);
async function main() {
// डेटा डालना
const newUser = await db.insert(users).values({
name: "Alice",
age: 30,
}).returning();
console.log("Created user:", newUser);
// डेटा चुनना
const allUsers = await db.select().from(users);
console.log("All users:", allUsers);
// शर्त के साथ डेटा चुनना
const user = await db.select()
.from(users)
.where(eq(users.name, "Alice"));
console.log("Found user:", user);
}
main().catch(console.error);
4. मुख्य तरीके और फ़ंक्शन
नीचे Drizzle ORM के प्रमुख तरीके उनके सिग्नेचर और उदाहरणों के साथ दिए गए हैं।
4.1 drizzle(client)
पुस्तकालय में भी
Swift के लिए WebSocket लाइब्रेरीज़: Starscream और URLSessionWebSocketTask
Node.js पर GraphQL: graphql-http लाइब्रेरी के लिए पूर्ण गाइड
PHP में कार्य शेड्यूलर: लचीले शेड्यूल के लिए cron‑expression लाइब्रेरी
JWT टोकन PHP: प्रमाणीकरण और अधिकारिता की संपूर्ण गाइड