परिचय: Swift डेवलपर को डेटाबेस की आवश्यकता क्यों है?
iOS और macOS के लिए आधुनिक एप्लिकेशन शायद ही कभी डेटा भंडारण के बिना चलते हैं। चाहे वह कार्य सूची हो, उपयोगकर्ता प्रोफ़ाइल हो या उत्पाद सूची — डेटा को कहीं संग्रहीत और पुनर्प्राप्त करने की आवश्यकता होती है। Swift, Apple पारिस्थितिकी तंत्र की मुख्य भाषा के रूप में, डेटाबेस (DB) के साथ काम करने के लिए शक्तिशाली उपकरण प्रदान करती है। इस लेख में, हम समझेंगे कि एक शुरुआती डेवलपर दो लोकप्रिय प्रणालियों: रिलेशनल PostgreSQL और डॉक्यूमेंट-ओरिएंटेड MongoDB से कैसे जुड़ सकता है और CRUD संचालन (निर्माण, पढ़ना, अद्यतन, हटाना) कर सकता है।
हम PostgreSQL के साथ काम करने के लिए सर्वर फ्रेमवर्क Vapor (SwiftNIO पर आधारित) और MongoDB के लिए लोकप्रिय ड्राइवर MongoKitten का उपयोग करेंगे। दोनों विकल्प Swift पर बैकएंड के लिए उपयुक्त हैं। यदि आप अभी शुरू कर रहे हैं — डरें नहीं: सारा कोड सरल और स्पष्टीकरण के साथ होगा।
1. PostgreSQL और Swift: रिलेशनल DB का क्लासिक
PostgreSQL SQL समर्थन वाला एक शक्तिशाली रिलेशनल डेटाबेस है। Swift के लिए सबसे अच्छा तरीका फ्रेमवर्क Vapor और इसका ORM Fluent है। Fluent आपको तालिकाओं के साथ सामान्य Swift संरचनाओं की तरह काम करने की अनुमति देता है।
1.1. Vapor प्रोजेक्ट सेटअप
पहले Vapor Toolbox स्थापित करें और एक प्रोजेक्ट बनाएं:
brew install vaporvapor new MyAppcd MyAppPackage.swift में PostgreSQL के लिए निर्भरता जोड़ें:
dependencies: [ .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0"), .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0"), .package(url: "https://github.com/vapor/fluent-postgres-driver.git", from: "2.0.0")]1.2. मॉडल और माइग्रेशन
एक सरल User मॉडल बनाएं:
import Fluentimport Vapor
final class User: Model, Content { static let schema = "users" @ID(key: .id) var id: UUID? @Field(key: "name") var name: String @Field(key: "email") var email: String init() { } init(id: UUID? = nil, name: String, email: String) { self.id = id self.name = name self.email = email }}अब तालिका बनाने के लिए माइग्रेशन:
struct CreateUser: Migration { func prepare(on database: Database) -> EventLoopFuture<Void> { database.schema("users") .id() .field("name", .string, .required) .field("email", .string, .required) .create() } func revert(on database: Database) -> EventLoopFuture<Void> { database.schema("users").delete() }}configure.swift में माइग्रेशन पंजीकृत करें:
app.migrations.add(CreateUser())1.3. CRUD संचालन
रिकॉर्ड बनाना (Create):
let user = User(name: "इवान", email: "ivan@example.com")try await user.save(on: database)पढ़ना (Read):
let users = try await User.query(on: database).all()let user = try await User.find(id, on: database)अद्यतन (Update):
guard let user = try await User.find(id, on: database) else { return }user.name = "नया नाम"try await user.update(on: database)हटाना (Delete):
guard let user = try await User.find(id, on: database) else { return }try await user.delete(on: database)Fluent स्वचालित रूप से SQL क्वेरी उत्पन्न करता है, जो शुरुआती लोगों के लिए जीवन को बहुत आसान बनाता है।
2. MongoDB और Swift: NoSQL का लचीलापन
MongoDB एक डॉक्यूमेंट DB है जहां डेटा BSON (बाइनरी JSON) प्रारूप में संग्रहीत किया जाता है। Swift के लिए हम लाइब्रेरी MongoKitten का उपयोग करते हैं — एक परिपक्व और सक्रिय रूप से समर्थित