Správa databáze se Sinatrou

Jakmile je naše webová aplikace definována a my již víme, čeho potřebujeme dosáhnout, mnohokrát je nutné dosáhnout určité formy datové stálosti, což se projeví v uložení někam získaných dat a jejich následném použití, a to je důvod, proč je databáze motory pro nás.

Poté, co je potřeba, aby naše data v aplikacích přetrvávala, musíme hledat nebo porozumět tomu, jak s těmito operacemi zacházet, a přestože to dnes může znít složitě, existuje mnoho nástrojů, které nám usnadňují práci, například existují ORM které nám dávají možnost vytvářet struktury, které jsou nezávislé na enginu, takže jen málokdy budeme psát čistý dotaz.

V případě Sinatra Existuje několik drahokamů, které již mají na starosti připojení a správu databází, takže uvidíme, jaké jsou a jak je můžeme integrovat do naší aplikace.

Vyberte databázový stroj


Prvním krokem, který musíme udělat, je vybrat správný databázový stroj pro naši aplikaci, na trhu je mnoho řešení a každé s jiným účelem, v případě Sinatra budeme obecně používat MySQL nebo PostgreSQL v produkčním prostředí, nebo v opačném případě SQLite ve vývojových prostředích.

V případě tohoto tutoriálu jsme se rozhodli pro poslední možnost kvůli snadné instalaci a rychlosti, s jakou můžeme začít pracovat.

Instalace SQLite


Chcete -li nainstalovat tento engine, nejprve přejděte na jeho oficiální webové stránky a stáhněte si balíček odpovídající našemu systému, mnoha distribucím v Linux Již jsou dodávány s nainstalovaným a funkčním motorem, takže uvidíme, jak tento proces provést v Okna.

Na předchozím obrázku vidíme, že musíme stáhnout předkompilované binární soubory, jakmile to bude hotovo, rozbalíme je do složky s názvem SQLite na našem disku C: a přidáme tuto složku jako proměnnou prostředí do naší CESTA. Jakmile je výše uvedené provedeno při psaní sqlite3 v naší konzole bychom měli vidět něco jako následující.

Jakmile je tento krok zahrnut, musíme nyní stáhnout odpovídající ovladač pro Rubín, proto musíme v naší konzole příkazů napsat následující:

 gem nainstalujte sqlite3
To by nám mělo poskytnout výsledek, jako je následující, což naznačuje, že instalace drahokamu byla úspěšná, aby se mohl připojit SQLite.

ORM


Protože máme náš databázový stroj, nyní je řada na získání ORMJedná se o nástroj, který nám umožňuje převádět tabulky databáze na objekty, čímž s nimi můžeme v naší aplikaci snáze pracovat.

VýhodaHlavní výhodou ORM spočívá v tom, že nám to umožňuje být nezávislí na enginu, protože tím, že nemusíme přímo psát kód SQL, můžeme jednoduše změnit konfiguraci a provést odpovídající migraci.

Samozřejmě existuje mnoho možností, s nimiž lze pracovat Rubín a s Sinatra, nicméně jeden z nejpřátelštějších na začátku je DataMapper.

Nainstalujte DataMapper


Instalace tohoto ORM Nemůže to být jednodušší, a to díky tomu, že je to také drahokam, takže musíme jednoduše provést několik pokynů v naší konzole, první je následující, která nám pomáhá získat základní komponentu:
 gem nainstalujte data_mapper
Výsledkem by měl být podobný následujícímu:

Nyní, když máme základnu, jednoduše potřebujeme nainstalovat ovladač tak, aby DataMapper může komunikovat s SQLiteK tomu musíme nainstalovat následující klenot:

 gem nainstalujte dm-sqlite-adapter
Právě to umožní našim aplikacím vytvářet tabulky a používat databázi, aniž bychom museli psát kód SQL. Nakonec by nám instalace ovladače měla v naší konzole poskytnout následující zprávu.

Připojte se k databázi


Vzhledem k tomu, že máme nainstalované závislosti, musíme nyní otestovat, jak funguje naše nové prostředí pro trvalost dat, a proto vytvoříme třídu. Tato třída bude základem, který nám umožní vytvořit tabulku a ukládat do ní záznamy, což nám také dává možnost nemuset psát kód SQL přímo, takže v budoucnu, až budeme muset použít jiný databázový stroj, bude stačit pouhá změna konfigurace.

V naší složce aplikace vytvoříme soubor s názvem písničky.rb„Tato třída musí udělat, aby měla mapu, jak můžeme skladbu uložit do databáze, podívejme se na obsah a poté vysvětlíme, co každá jeho část dělá:

 require 'dm-core' require 'dm-migrations' DataMapper.setup (: default, "sqlite3: // # {Dir.pwd} /musica.db") class Songs include DataMapper :: Resource property: id, Serial property: title, String property: duration, Integer property: release_date, Date end DataMapper.finalize
Nejprve musíme udělat vyžadovat klíčových složek DataMapper v tomto případě dm-jádro Y dm-migrace. Poté vytvoříme konfigurační řádek, který nám umožní použít na prvním místě SQLite v tomto případě okamžitě vytvořit soubor hudba.dbPokud soubor již existuje, znamená to, že databáze již existuje, takže by se jednoduše vytvořilo připojení.

Konečně děláme naši třídu písničky který bude obsahovat řadu atributů, které jej identifikují a zahrnutí další třídy DataMapper. Díky tomu jsme připraveni na další fázi, kterou je testování naší aplikace. Protože jsme nevytvořili nic, co bychom v prohlížeči viděli, je vhodné použít Ruby interaktivní konzole (irb), což nám umožní zkontrolovat, zda je vše na správné cestě, a navíc si na to zvyknout DataMapper.

Vyzkoušejte naši aplikaci


Nejprve musíme v našem terminálu nebo konzole přejít do složky, kam jsme uložili náš soubor písničky.rb protože toto je klíč k vývoji našeho příkladu, jakmile tam budeme, musíme spustit naši interaktivní konzolu Rubín zadáním příkazu:
 irb
Jakmile to spustíme, můžeme to udělat vyžadovat naší třídy zadáním příkazu:
 vyžadovat „./písně“
To musí vrátit true, pokud je úspěšné, což můžeme vidět na následujícím obrázku.

Další akt musíme použít nástroj auto_migrate z DataMapper, to nám umožní vytvořit tabulku s atributy naší třídy v odpovídajícím souboru databáze. K tomu jednoduše napíšeme následující:

 Songs.auto_migrate!
Což vytváří potřebnou strukturu, aby bylo možné záznamy ukládat.

Vytvořte naši první píseň


Nyní musíme vytvořit objekt, který nám umožní uložit potřebné hodnoty do databáze, a proto vytvoříme objekt nazvaný píseň:
 song = Songs.new
Chcete -li jej později uložit pomocí následujícího příkazu:

To nám již poskytuje základní platformu pro zahrnutí informací do naší databáze, podívejme se, co by konzola v tomto bodě měla ukázat:

Jakmile to bude hotové, můžeme pro to data uložit. Zatímco jsme stále v naší konzole, budeme postupně přidávat atributy našeho objektu, podívejme se:

 song.title = „Nová píseň“ song.duration = „315“ song.release_date = Date.new (2010) song.save
Každá z předchozích instrukcí byla uložení do objektu písně a provedení metody Uložit to vše je uloženo v databázi. Na následujícím obrázku vidíme proces, který jsme provedli.

To také zaznamenáváme Rubín to je rozeznává velká a malá písmena musíme tedy být opatrní při psaní našich tříd, protože v případě konzoly došlo k chybě při psaní třídy datum, protože Datum bylo napsáno, což bylo zjištěno okamžitě. Nakonec, pokud chceme uložené skladby konzultovat, stačí napsat následující instrukci:

 Písně. Vše
Můžeme také vytvořit účet o tom, kolik záznamů máme, s následujícím.
 Písně. Počet
Pro dokončení se podívejme na odpověď přijatou v naší konzole při provádění těchto dvou příkazů.

Vložili jsme náš první záznam a úspěšně jsme jej konzultovali, a tak jsme se naučili používat databázi s Sinatra, i když si ten nejpozornější možná uvědomil, že všechno, co jsme udělali, bylo v Rubín, a to byl skvělý nápad, ukázat, jak vědět Rubín můžeme pracovat Sinatra bez mnoha komplikací.

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave