Sequel هي مجموعة أدوات قواعد بيانات وORM خفيف الوزن وآمن في العمليات المتزامنة للغة Ruby.
الاتصال بقواعد البيانات
require 'sequel'
# SQLite في الذاكرة أو كملف
DB = Sequel.sqlite('database.db')
# PostgreSQL / MySQL
DB = Sequel.connect('postgres://user:password@localhost/mydb', max_connections: 10)
مجموعات البيانات والاستعلامات (Datasets & Queries)
تعبيرات Sequel قابلة للتسلسل ويتم تقييمها عند الحاجة فقط (lazily evaluated):
items = DB[:items] # يمثل مجموعة البيانات
# Select, Where, Order
items.where(category: 'tools').order(:price).limit(10).all
# تصفيات معقدة
items.where{ price > 100 }
items.exclude(status: 'archived')
# الإدراج والتحديث
items.insert(name: 'Hammer', price: 15.99)
items.where(id: 1).update(price: 19.99)
# الحذف
items.where(id: 1).delete
نماذج Sequel (Models)
class User < Sequel::Model
plugin :validation_helpers
plugin :timestamps
one_to_many :posts
def validate
super
validates_presence [:name, :email]
validates_unique :email
end
end
user = User.create(name: 'Alice', email: '[email protected]')
معاملات قواعد البيانات (Transactions)
DB.transaction do
account_a.update(balance: account_a.balance - 100)
account_b.update(balance: account_b.balance + 100)
end