Sequel उदाहरण: डेटाबेस से कनेक्ट करना
Sequel का उपयोग शुरू करने के लिए पहला कदम एक डेटाबेस से कनेक्ट करना है।
यहाँ एक उदाहरण है:
require 'sequel'
DB = Sequel.sqlite('/tmp/testing.db')
यह एक Sequel::Database ऑब्जेक्ट बनाता है और इसे DB को असाइन करता है।
हम यहाँ SQLite3 डेटाबेस का उपयोग कर रहे हैं।
लेकिन आप दूसरों का उपयोग कर सकते हैं:
Sequel.postgresSequel.mysql2Sequel.oracle
अगला क्या?
आपको डेटा स्टोर करने के लिए एक टेबल बनाने की आवश्यकता है।
इसे बनाने का तरीका यहाँ है:
unless DB.table_exists?(:fruits)
DB.create_table :fruits do
primary_key :id
column :name, String
column :amount, Integer
end
end
एक माइग्रेशन सिस्टम है जिसका आप उपयोग कर सकते हैं।
लेकिन यह वैकल्पिक है।
अब हम डेटा जोड़ना और डेटाबेस क्वेरी करना शुरू करने के लिए तैयार हैं!
Sequel Datasets का उपयोग कैसे करें
डेटाबेस पर एक विशिष्ट टेबल के साथ इंटरैक्ट करने के लिए आपको एक डेटासेट ऑब्जेक्ट की आवश्यकता है।
यहाँ एक प्राप्त करने का तरीका है:
table = DB[:fruits] # Sequel::SQLite::Dataset
बहुत बढ़िया!
अब हम insert मेथड के साथ कुछ रिकॉर्ड्स जोड़ सकते हैं।
इस तरह:
table.insert(name: "Orange", amount: 10) table.insert(name: "Apple", amount: 2) table.insert(name: "Banana", amount: 7)
आइए एक काउंट प्राप्त करें:
table.count # 3
आइए डेटासेट में सभी एंट्रीज़ प्राप्त करें:
table.all
# [
# { id: 1, name: "Orange", amount: 10 },
# { id: 2, name: "Apple", amount: 2 },
# { id: 3, name: "Banana", amount: 7 }
# ]
अरे!
यह हैशेज के एरे की तरह दिखता है।
ठीक है, आप सही हैं।
यही वास्तव में यह है।
Sequel आपको बिना मॉडल के डेटाबेस क्वेरी करने की अनुमति देता है।
लेकिन हम मॉडल्स का उपयोग कर सकते हैं।
यहाँ कैसे...
Sequel में मॉडल्स का उपयोग कैसे करें
एक Sequel मॉडल ActiveRecord मॉडल की तरह दिखता है।
यहाँ एक उदाहरण है:
class Fruit < Sequel::Model end
मॉडल्स बिल्कुल एक डेटासेट की तरह व्यवहार करते हैं, लेकिन वे परिणामों को मॉडल क्लास में लपेटते हैं।
एक नज़र डालें:
Fruit.first
# Fruit @values={:id=>1, :name=>"Orange", :amount=>10}
हम वही Sequel::Dataset मेथड्स उपयोग कर सकते हैं।
तो यहां कोई "जादू" नहीं है।
कुछ और उदाहरण:
Fruit.map(:name) # ["Orange", "Apple", "Banana"] Fruit.where(name: "Apple").or(amount: 10).map(:name) # ["Orange", "Apple"] Fruit.first[:amount] # 10
बहुत अच्छा!
Sequel बनाम ActiveRecord
अब जब आपने सीख लिया है कि Sequel कितना शानदार है, तो आप सोच रहे होंगे कि यह ActiveRecord से कैसे तुलना करता है।
खैर, ActiveRecord Rails के लिए डिफ़ॉल्ट ORM है।
और Rails वास्तव में कन्वेंशन पसंद करता है।
इसलिए मुझे नहीं लगता कि Rails ऐप में ActiveRecord को Sequel से बदलने की कोशिश करना उचित है।
हालांकि।
यदि आप Sinatra जैसे किसी अन्य फ्रेमवर्क का उपयोग कर रहे हैं, तो Sequel एक बढ़िया विकल्प है!
सारांश
आपने Ruby में ORM का उपयोग करके डेटाबेस के साथ काम करना सीखा, इस मामले में, Sequel Ruby gem।
अब इसे आज़माने और मज़े करने की आपकी बारी है!
पढ़ने के लिए धन्यवाद।