Web uygulamamız tanımlandıktan ve neyi başarmamız gerektiğini zaten biliyoruz, çoğu zaman bir tür veri kalıcılığı elde etmek gerekir, bu onun tarafından elde edilen verileri bir yerde depolamak ve sonra kullanmak anlamına gelir ve bu, veritabanını yapan şeydir. bizim için motorlar
O zaman, verilerimizin uygulamalarda kalıcı olması ihtiyacı, bu işlemlerin nasıl ele alınacağını aramamız veya anlamamız gereken zamandır ve bugün karmaşık görünse de, işimizi kolaylaştıran birçok araç var, örneğin ORM bu bize motordan bağımsız yapılar yaratma imkanı veriyor, böylece neredeyse hiç saf bir sorgu yazmayacağız.
Bu durumuda Sinatra Veritabanlarının bağlantılarından ve yönetiminden zaten sorumlu olan birkaç mücevher var, bu yüzden bunların ne olduğunu ve bunları uygulamamıza nasıl entegre edebileceğimizi göreceğiz.
Veritabanı Motorunu seçin
Yapmamız gereken ilk adım, uygulamamız için doğru Veritabanı motorunu seçmektir, piyasada birçok çözüm var ve her birinin farklı bir amacı var. Sinatra genel olarak kullanacağız MySQL veya PostgreSQL bir üretim ortamında veya başarısız SQLit geliştirme ortamlarında.
Bu eğitimde, kurulum kolaylığı ve çalışmaya başlama hızımız nedeniyle son seçeneği seçtik.
SQLite'ı yükleme
Bu motoru kurmak için öncelikle resmi web sitesine gidiyoruz ve sistemimize karşılık gelen paketi indiriyoruz, birçok dağıtım Linux Zaten bu motor kurulu ve işlevsel olarak geliyorlar, bu yüzden bu işlemin nasıl gerçekleştirileceğini göreceğiz. pencereler.
Bir önceki resimde, önceden derlenmiş ikili dosyaları indirmemiz gerektiğini görüyoruz, bu yapıldıktan sonra bunları adlı bir klasörde açacağız. SQLit C: sürücümüzde ve bu klasörü ortam değişkeni olarak ekliyoruz. YOL. Yazarken yukarıdakiler yapıldıktan sonra sqlite3 konsolumuzda aşağıdaki gibi bir şey görmeliyiz.
Bu adım işlendikten sonra, şimdi ilgili sürücüyü indirmeliyiz. yakut, bu yüzden komut konsolumuza aşağıdakileri yazmalıyız:
gem yükleme sqlite3Bu bize bağlanmak için gem kurulumunun başarılı olduğunu gösteren aşağıdaki gibi bir sonuç vermelidir. SQLit.
ORM
Veritabanı motorumuza sahip olduğumuza göre, şimdi sıra ORMBu, bir Veritabanının tablolarını nesnelere dönüştürmemizi sağlayan bir araçtır, bu şekilde uygulamamızda onlarla daha kolay çalışabiliriz.
AvantajAna avantajı ORM doğrudan SQL kodunu yazmamıza gerek kalmadan konfigürasyonu değiştirip ilgili geçişleri yapabileceğimiz için motordan bağımsız olmamıza izin vermesidir.
Elbette çalışmak için birçok seçenek var yakut Ve birlikte Sinatra, ancak başlamak için en dostça olanlardan biri Veri Eşleştiricisi.
DataMapper'ı yükleyin
Bunun kurulumu ORM Daha basit olamazdı ve bu aynı zamanda bir mücevher olduğu gerçeği sayesinde, konsolumuzda birkaç talimatı yerine getirmemiz gerekiyor, ilki, temel bileşeni elde etmemize yardımcı olan şudur:
gem install data_mapperBu, aşağıdakine benzer bir sonuç üretmelidir:
Artık temele sahip olduğumuza göre, sadece sürücüyü kurmamız gerekiyor, böylece Veri Eşleştiricisi ile etkileşime girebilir SQLit, bunun için aşağıdaki gem'i kurmalıyız:
gem kurulum dm-sqlite-adaptörBu uygulamalarımızın SQL kodu yazmak zorunda kalmadan tablolar oluşturmasına ve Veritabanını kullanmasına izin verecektir.Sonunda sürücü kurulumu bize konsolumuzda aşağıdaki mesajı vermelidir.
Bir Veritabanına Bağlan
Bağımlılıkları yüklediğimiz için şimdi yapmamız gereken yeni veri kalıcılık ortamımızın nasıl çalıştığını test etmek için devam etmek, bunun için bir sınıf oluşturacağız. Bu sınıf, bir tablo oluşturmamıza ve içinde kayıtları saklamamıza izin verecek temel olacak, bu da bize kod yazmak zorunda kalmama fırsatı veriyor. SQL doğrudan, böylece gelecekte başka bir Veritabanı motoru kullanmamız gerektiğinde, konfigürasyonu değiştirmek yeterli olacaktır.
Uygulama klasörümüzde adında bir dosya oluşturacağız. şarkılar.rb, bu sınıfın yapması gereken, bir şarkıyı Veritabanında nasıl saklayabileceğimizin haritasına sahip olmak, içeriği görelim ve ardından her bir bölümünün ne yaptığını açıklayalım:
'dm-core' gerektirir 'dm-migrations' gerektirir DataMapper.setup (: varsayılan, "sqlite3: // # {Dir.pwd} /musica.db") sınıfı Şarkılar DataMapper içerir :: Kaynak özelliği: id, Seri özellik: başlık, Dize özelliği: süre, Tamsayı özelliği: release_date, Date end DataMapper.finalizeöncelikle yapmamız gerekenler gerekmek anahtar bileşenlerinden Veri Eşleştiricisi bu durumda dm-çekirdek Y dm-göçler. Ardından, ilk etapta kullanmamıza izin veren bir yapılandırma satırı oluşturuyoruz. SQLit bu durumda dosyayı hemen oluşturmak için müzik.dbDosya zaten mevcutsa, Veritabanının zaten var olduğu anlamına gelir, bu nedenle bağlantı kurulacaktır.
Sonunda dersimizi yapıyoruz şarkılar onu tanımlayan bir dizi nitelik ve başka bir sınıf Veri Eşleştiricisi. Bununla bir sonraki aşama olan uygulamamızı test etmeye hazırız. Tarayıcımızda görmek için herhangi bir şey oluşturmadığımız için, kullanmak için iyi bir zaman. Ruby etkileşimli konsol (irb)alışmamıza izin vermenin yanı sıra her şeyin doğru yolda olup olmadığını kontrol etmemizi sağlayacak. Veri Eşleştiricisi.
Uygulamamızı deneyin
Öncelikle terminalimizde veya konsolumuzda dosyamızı kaydettiğimiz klasöre gitmeliyiz. şarkılar.rb Örneğimizi geliştirmenin anahtarı bu olduğundan, orada bir kez etkileşimli konsolumuzu başlatmalıyız. yakut komutu yazarak:
irbBaşladıktan sonra yapabiliriz gerekmek komutu yerleştirerek sınıfımızın:
"./songs" gerektirirAşağıdaki resimde gördüğümüz gibi başarılı olursa true dönmelidir.
Sonraki eylem aracı kullanmalıyız auto_migrate nın-nin Veri Eşleştiricisi, bu, ilgili Veritabanı dosyasında sınıfımızın öznitelikleriyle tabloyu oluşturmamıza izin verecektir. Bunun için basitçe şunları yazıyoruz:
Songs.auto_migrate!Hangi kayıtları saklayabilmek için gerekli yapıyı oluşturur.
İlk şarkımızı oluşturun
Şimdi yapmamız gereken gerekli değerleri Veritabanında saklamamızı sağlayacak nesneyi oluşturmak, bunun için şarkı adında bir nesne oluşturacağız:
şarkı = Songs.newDaha sonra aşağıdaki komutla saklamak için:
Bu zaten bize bilgileri Veritabanımıza dahil etmek için bir temel platform sağlıyor, bu noktada konsolun ne göstermesi gerektiğine bakalım:
Bu yapıldıktan sonra, bunun için verileri saklayabiliriz. Hala konsolumuzdayken nesnemizin özelliklerini tek tek ekleyeceğiz, bakalım:
song.title = “Yeni şarkı” song.duration = “315” song.release_date = Date.new (2010) song.saveÖnceki talimatların her biri şarkı nesnesinde saklanıyor ve yöntemi uyguluyordu. kayıt etmek bunların hepsi Veritabanında saklanır. Aşağıdaki görselde gerçekleştirmiş olduğumuz işlemi görüyoruz.
şunu da not ediyoruz yakut bu harfe duyarlı bu yüzden sınıflarımızı nasıl yazdığımıza dikkat etmeliyiz, çünkü konsol durumunda sınıf yazarken bir hata oluştu Tarih, Tarih yazıldığından hemen tespit edildi. Son olarak saklanan şarkılara bakmak istiyorsak aşağıdaki talimatı yazmamız yeterli:
Songs.allAyrıca aşağıdakilerle kaç tane kaydımız olduğunu da hesaplayabiliriz.
Songs.countBitirmek için, bu iki komutu yürütürken konsolumuza gelen yanıtı görelim.
İlk kaydımızı ekledik ve başarılı bir şekilde danıştık, böylece Veritabanının nasıl kullanılacağını öğrendik. Sinatra, en gözlemci, yaptığımız her şeyin içinde olduğunu fark etmiş olsa da yakut, ve bu harika bir fikirdi, ne kadar bilgili olduğunu göstermek için yakut birlikte çalışabiliriz Sinatra pek çok komplikasyon yaşamadan.