Rust में डेटाबेस के साथ कार्य: PostgreSQL और MongoDB

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

रस्ट भाषा में डेटाबेस के साथ काम करने का परिचय



रस्ट भाषा सिस्टम प्रोग्रामिंग में तेजी से लोकप्रिय हो रही है, लेकिन इसकी क्षमताएं निम्न-स्तरीय कार्यों से कहीं आगे तक फैली हुई हैं। सख्त टाइप सिस्टम, मेमोरी सुरक्षा और उच्च प्रदर्शन के कारण, रस्ट डेटाबेस के साथ काम करने वाले विश्वसनीय सर्वर एप्लिकेशन बनाने के लिए एक उत्कृष्ट विकल्प बन गया है। इस लेख में, हम विस्तार से जानेंगे कि दो लोकप्रिय DBMS: रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कैसे कनेक्ट किया जाए और उन पर ऑपरेशन कैसे किए जाएं।



हम मुख्य लाइब्रेरी (क्रेट्स) जैसे PostgreSQL के लिए diesel और आधिकारिक ड्राइवर mongodb पर विचार करेंगे, साथ ही शुद्ध रस्ट में CRUD ऑपरेशन के उदाहरण भी दिखाएंगे। यह लेख शुरुआती और अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगा जो अपने टेक्नोलॉजी स्टैक का विस्तार करना चाहते हैं।



1. PostgreSQL के साथ काम करना: Diesel क्रेट



Diesel रस्ट के लिए एक सुरक्षित, एक्सटेंसिबल ORM और क्वेरी बिल्डर है। यह कंपाइलेशन के समय टाइप चेकिंग सुनिश्चित करता है, जो SQL क्वेरी से संबंधित कई रनटाइम त्रुटियों को समाप्त करता है। शुरू करने के लिए, Cargo.toml फ़ाइल में डिपेंडेंसी जोड़ना आवश्यक है।



इंस्टॉलेशन और सेटअप



निम्नलिखित क्रेट्स जोड़ें:



[dependencies]diesel = { version = "2.1", features = ["postgres"] }dotenvy = "0.15"serde = { version = "1.0", features = ["derive"] }serde_json = "1.0"tokio = { version = "1.0", features = ["full"] }


साथ ही, Diesel CLI कमांड-लाइन उपयोगिता इंस्टॉल करें:



cargo install diesel_cli --no-default-features --features postgres


प्रोजेक्ट की रूट डायरेक्टरी में अपने डेटाबेस URL के साथ एक .env फ़ाइल बनाएं:



DATABASE_URL=postgres://username:password@localhost/my_database


माइग्रेशन सेटअप करने के लिए कमांड चलाएं:



diesel setupdiesel migration generate create_users


स्कीमा और मॉडल की परिभाषा



माइग्रेशन फ़ाइल up.sql में, टेबल बनाने के लिए SQL लिखें:



CREATE TABLE users (    id SERIAL PRIMARY KEY,    name VARCHAR NOT NULL,    email VARCHAR NOT NULL UNIQUE,    age INTEGER NOT NULL);


फिर diesel migration run चलाएं। इसके बाद, निम्न कमांड का उपयोग करके रस्ट स्कीमा (फ़ाइल src/schema.rs) जनरेट करें:



diesel print-schema > src/schema.rs


अब डेटा इंसर्ट करने के लिए मॉडल और स्ट्रक्चर परिभाषित करें:



// src/models.rsuse diesel::prelude::*;use serde::{Deserialize, Serialize};use crate::schema::users;

#[derive(Queryable, Selectable, Serialize, Deserialize)]#[diesel(table_name = users)]pub struct User { pub id: i32, pub name: String, pub email: String, pub age: i32,}

#[derive(Insertable, Deserialize)]#[diesel(table_name = users)]pub struct NewUser { pub name: String, pub email: String, pub age: i32,}


PostgreSQL के साथ CRUD ऑपरेशन



आइए मुख्य ऑपरेशन देखें। DB से कनेक्शन और नया उपयोगकर्ता बनाना:



use diesel::prelude::*;use dotenvy::dotenv;use std::env;

use crate::models::{NewUser, User};use crate::schema::users::dsl::*;

pub fn establish_connection() -> PgConnection { dotenv().ok(); let database_url = env::var("DATABASE_URL") .expect("DATABASE_URL must be set"); PgConnection::establish(&database_url) .expect(&format!("Error connecting to {}", database_url))}

pub fn create_user(conn: &mut PgConnection, name: &str, email: &str, age: i32) -> User { let new_user = NewUser { name: name.to_string(), email: email.to_string(), age, };

diesel::insert_into(users) .values(&new_user) .returning(User::as_returning()) .get_result(conn)```

ब्लॉग

पुस्तक अनुशंसाएँ