Datenbankverwaltung mit Sinatra

sinatra-bd-cover.png

Sobald unsere Webanwendung definiert ist und wir bereits wissen, was wir erreichen müssen, ist es häufig erforderlich, eine Form der Datenpersistenz zu erreichen. Dies führt dazu, dass die von ihr erhaltenen Daten irgendwo gespeichert und dann verwendet werden macht die Datenbank-Engines für uns.

Wenn unsere Daten dann in Anwendungen beibehalten werden müssen, müssen wir nach der Verwaltung dieser Vorgänge suchen oder diese verstehen. Auch wenn dies derzeit komplex klingt, gibt es viele Tools, die unsere Arbeit erleichtern, z. B. ORMs Das gibt uns die Möglichkeit, Strukturen zu erstellen, die unabhängig von der Engine sind, so dass wir so gut wie nie eine reine Abfrage schreiben können.

Im Falle von Sinatra gibt es bereits mehrere Juwelen, die für die Verbindungen und die Verwaltung der Datenbanken zuständig sind. Wir werden also sehen, was sie sind und wie wir sie in unsere Anwendung integrieren können.

Wählen Sie das Datenbankmodul

Der erste Schritt, den wir tun müssen, ist die Auswahl der geeigneten Datenbank-Engine für unsere Anwendung. Auf dem Markt gibt es viele Lösungen mit jeweils unterschiedlichen Zwecken. Im Falle von Sinatra werden wir im Allgemeinen MySQL oder PostgreSQL in einer Produktionsumgebung verwenden oder Fehlgeschlagenes SQLite in Entwicklungsumgebungen.

In diesem Tutorial haben wir uns für die letzte Option entschieden, da sie einfach zu installieren ist und wir schnell mit der Arbeit beginnen können.

SQLite installieren

Um diese Engine zuerst zu installieren, gehen wir auf die offizielle Website und laden das entsprechende Paket auf unser System herunter. Viele Linux- Distributionen sind bereits mit dieser Engine installiert und funktionieren, sodass wir sehen werden, wie dieser Prozess unter Windows ausgeführt wird .

Im vorherigen Bild sehen wir, dass wir die vorkompilierten Binärdateien herunterladen müssen. Sobald dies erledigt ist, werden wir sie in einem Ordner namens SQLite in unserer Unit C: dekomprimieren und diesen Ordner als Umgebungsvariable in unseren PATH einfügen . Wenn Sie die obigen Schritte ausgeführt haben, während Sie sqlite3 in unsere Konsole schreiben, sollten Sie Folgendes sehen.

See also  Fügen Sie E-Mails in Thunderbird eine Signatur hinzu

sinatra-base-datos-2.jpg

Sobald dieser Schritt erledigt ist, müssen wir jetzt den entsprechenden Treiber für Ruby herunterladen. Deshalb müssen wir in unserer Befehlskonsole Folgendes schreiben:

 Edelstein installieren sqlite3 

Dies sollte ein Ergebnis wie das folgende ergeben, das angibt, dass die Installation des Gems erfolgreich war, um eine Verbindung zu SQLite herzustellen .

sinatra-base-datos-3.jpg

Der ORM

Da wir unser Datenbankmodul haben, ist es nun an der Reihe, das ORM zu erhalten. Dies ist ein Tool, mit dem wir die Tabellen einer Datenbank in Objekte konvertieren können, sodass wir auf diese Weise in unserer Anwendung besser mit ihnen arbeiten können einfach

Vorteil
Der Hauptvorteil des ORM besteht darin, dass wir unabhängig von der Engine sind, da wir, indem wir keinen SQL-Code direkt schreiben müssen, einfach die Konfiguration ändern und die entsprechenden Migrationen durchführen können.

Natürlich gibt es viele Möglichkeiten, mit Ruby und Sinatra zu arbeiten , jedoch ist DataMapper eine der am einfachsten zu startenden .

Installieren Sie DataMapper

Die Installation dieses ORMs kann nicht einfacher sein, und dies ist auch ein Juwel. Wir müssen einfach ein paar Anweisungen in unserer Konsole ausführen. Die erste ist die folgende, die uns hilft, die Basiskomponente zu erhalten:

 gem installiere data_mapper 

Dies sollte zu einem Ergebnis führen, das dem folgenden ähnelt:

sinatra-base-datos-4.jpg

Nachdem wir die Basis haben, müssen wir nur noch den Treiber installieren, damit DataMapper mit SQLite interagieren kann. Dazu müssen wir das folgende Juwel installieren:

 gem install dm-sqlite-adapter 

Auf diese Weise können unsere Anwendungen Tabellen erstellen und die Datenbank verwenden, ohne SQL-Code schreiben zu müssen. Am Ende sollte die Installation des Treibers die folgende Meldung in unserer Konsole anzeigen.

sinatra-base-datos-5.jpg

Verbindung zu einer Datenbank herstellen

Da wir die Abhängigkeiten installiert haben, müssen wir jetzt testen, wie unsere neue Datenpersistenzumgebung funktioniert. Dazu werden wir eine Klasse erstellen. Diese Klasse wird die Basis sein, auf der wir eine Tabelle erstellen und Datensätze darin speichern können. Dies gibt uns auch die Möglichkeit, keinen SQL- Code direkt schreiben zu müssen, sodass wir in Zukunft eine andere Engine verwenden sollten Eine einfache Änderung der Konfiguration der Datenbank ist ausreichend.

See also  So organisieren Sie E-Mails in Google Mail

In unserem Anwendungsordner erstellen wir eine Datei mit dem Namen canciones.rb . In dieser Klasse sollten Sie die Karte darüber erstellen, wie ein Lied in der Datenbank gespeichert werden kann. Sehen wir uns den Inhalt an und erläutern Sie anschließend die einzelnen Abschnitte:

 Benötige 'dm-core' erfordern 'dm-migrationen' DataMapper.setup (: default, "sqlite3: // # {Dir.pwd} /musica.db") Klasse Songs Include DataMapper :: Resource Eigenschaft: id, Serial Eigenschaft: title, String Eigenschaft: duration, Integer Eigenschaft: launch_date, Date ende DataMapper.finalize 

Zunächst müssen wir die wichtigsten Komponenten von DataMapper in diesem Fall dm-core und dm-migrations erforderlich machen. Dann erstellen wir eine Konfigurationszeile, mit der wir SQLite verwenden können , um die Datei sofort zu erstellen. In diesem Fall music.db. Wenn die Datei bereits vorhanden ist, bedeutet dies, dass die Datenbank bereits vorhanden ist. Die Verbindung würde einfach hergestellt werden.

Schließlich erstellen wir unsere Klasse Songs , die eine Reihe von Attributen enthält, die sie identifizieren, und die Aufnahme einer weiteren Klasse von DataMapper wird vorgenommen . Damit sind wir bereit für die nächste Phase, in der unsere Anwendung getestet wird. Da wir nichts erstellt haben, was in unserem Browser angezeigt werden könnte, ist dies ein guter Zeitpunkt, um die interaktive Ruby (irb ) -Konsole zu verwenden, mit der wir überprüfen können, ob alles auf dem richtigen Weg ist. Außerdem können wir uns ein wenig an den DataMapper gewöhnen .

Testen Sie unsere Anwendung

Zuerst müssen wir in unserem Terminal oder unserer Konsole in den Ordner gehen, in dem wir unsere Datei songs.rb gespeichert haben, da dies der Schlüssel zur Entwicklung unseres Beispiels ist. Sobald wir dort unsere interaktive Ruby- Konsole starten müssen, wenn wir den Befehl schreiben:

 irb 

Sobald wir es gestartet haben, können wir die Anforderungen unserer Klasse erfüllen, wenn wir den Befehl platzieren:

 erfordern "./canciones" 

Dies sollte wahr sein, was wir im folgenden Bild schätzen können.

sinatra-base-datos-6.jpg

Als nächstes müssen wir das Tool Auto_migrate von DataMapper verwenden , damit wir die Tabelle mit den Attributen unserer Klasse in der entsprechenden Datenbankdatei erstellen können. Dazu schreiben wir einfach folgendes:

 Songs.auto_migrate! 

Dadurch wird die notwendige Struktur zum Speichern der Datensätze erstellt.

See also  Verwendung, Konfiguration und Aktualisierung von Ledger Nano X

Kreieren Sie unser erstes Lied

Jetzt müssen wir das Objekt erstellen, mit dem wir die erforderlichen Werte in der Datenbank speichern können. Dazu erstellen wir ein Objekt mit dem Namen song:

 song = Songs.new 

Speichern Sie es dann mit dem folgenden Befehl:

sinatra-base-datos-7.jpg

Dies gibt uns bereits eine Basisplattform, um die Informationen in unsere Datenbank aufzunehmen. Sehen wir uns an, was die Konsole an dieser Stelle anzeigen soll:

sinatra-base-datos-7.jpg

Sobald dies erledigt ist, können wir die Daten dafür speichern. Während wir uns noch in unserer Konsole befinden, fügen wir nacheinander die Attribute unseres Objekts hinzu.

 canción.tiulo = "Neues Lied" song.duration = "315" song.date_launch = Datum.neu (2010) song.save 

Jede der vorherigen Anweisungen wurde im Song-Objekt gespeichert, und wenn Sie die Speichermethode ausführen , wird dies alles in der Datenbank gespeichert. Wir sehen im folgenden Bild den Prozess, den wir durchgeführt haben.

sinatra-base-datos-8.jpg

Wir beachten auch, dass Ruby zwischen Groß- und Kleinschreibung unterscheidet, daher müssen wir beim Schreiben unserer Klassen vorsichtig sein, da bei der Konsole beim Schreiben der Date- Klasse ein Fehler aufgetreten ist , da Date geschrieben wurde, der sofort erkannt wurde. Wenn wir die gespeicherten Songs konsultieren möchten, schreiben Sie einfach die folgende Anweisung:

 Songs.all 

Mit den folgenden Angaben können wir auch angeben, wie viele Datensätze wir haben.

 Songs.count 

Lassen Sie uns zum Schluss die Antwort sehen, die in unserer Konsole bei der Ausführung dieser beiden Befehle eingeht.

sinatra-base-datos-9.jpg

Wir haben unseren ersten Datensatz eingefügt und ihn erfolgreich konsultiert. Wir haben gelernt, wie man die Datenbank mit Sinatra verwendet , obwohl der beobachtendste Benutzer möglicherweise erkannt hat, dass alles, was wir getan haben, in Ruby war , und dies war die großartige Idee. Zeigen Sie, wie wir mit Sinatra arbeiten können, ohne viele Komplikationen zu haben, wenn wir Ruby kennen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *