22.01.2014 Aufrufe

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

98 Umsetzung des Prototyps<br />

eines Platzhalter-Textes ausgeführt – z.B. in dem “Satz” $Pass-is_HERE/ wird den Platzhalter<br />

“HERE” durch den entsprechenden Passwort ersetzt.<br />

Der nächste Schritt in der Bereitstellung der Datenbank-Umgebung ist das Laden und die letzte<br />

Vorbereitung der Modelle, die in der Datenbank als Relationen gespeichert werden.<br />

Ladevorgang und Vorbereitung des Datenmodells<br />

In diesem Schritt werden die von dem Komanndozeile-basierten Programm gelieferten und ggf.<br />

noch manuell verarbeiteten Ruby-Klassen geladen. Mittels Ruby werden erstmal die einzelnen Dateien<br />

rekursiv aus dem Dateisystem geladen (mithilfe des require Befehls). Somit sind alle in der<br />

Abbildung 7.1 dargestellten Klassen dem Backend-System bekannt und die letzten Vorbereitungen<br />

können anfangen.<br />

Nachdem alle Modelle (in der DataMapper Terminologie auch als “Ressourcen” bekannt) geladen<br />

sind, müssen die “abgeschlossen” bzw. überprüft werden. Der Befehl DataMapper.finalize!<br />

ist dafür zuständig. Dieser Zwischenschritt ist benötigt, um diejenige deklarierten Modelle nach Fehler<br />

wie z.B. eine nicht unterstützte Kardinalität (beispielsweise “0..3” anstatt “0..n”) zu untersuchen<br />

sowie die mit den Assoziationen verbundenen Getters und Setters zu initialisieren.<br />

An dieser Stelle ist der Umgang mit dem Datenmodell für die Formulierung von Befehlen wie z.B.<br />

die Erstellung von Instanzen bereit. Die Ausführung der Befehle setzt voraus, dass die Migration (d.h.<br />

die entsprechende Darstellung der Modelle als Relationen in der Datenbank) schon abgeschlossen<br />

bzw. durchgeführt ist. Dieser Schritt wird im kommenden Paragraph erläutert.<br />

Initielle Migration und Befüllung der Datenbank<br />

Der “Seeding” Vorgang muss zuerst über eine Datenbankschema verfügen – zur Zeit wurde nur die<br />

Datenbank und deren Rollenverwaltung durchgeführt worden. Für die Erstellung einer Schema (meist<br />

im engl. als ein “migration” bekannt) müssen weitere DDL Befehle übergeben werden, wodurch die<br />

einzelnen Relationen erstellt werden. Dieser Schritt erfolgt fast automatisch dank dem genannten<br />

“DataMapper” ORM, mittels der DataMapper.automigrate! Befehl.<br />

Die Auswirkung dieses Befehls ist es, dass diejenige Klassen, die mit Eigenschaften (Attributen)<br />

und Assoziationen (Beziehungen) versehen und als DataMapper “Ressourcen” markiert sind, sich in<br />

der Datenbank wiederfinden werden. Das ORM kapselt dann dieser Prozess (die Ausführung von<br />

DDL Befehle wie z.B. CREATE TABLE) ein, abstrahierend von der händischen Übergabe von DDL-<br />

Befehlen und die eventuell damit verbundene Fehlerbehandlung.<br />

Das Konzept einer “Migration” berührt am meisten die einzelnen Schritte, die erfolgen müssen, um<br />

einen gewissen Zustand der Datenbank bzw. des Datenbasis zu erreichen. Beispielsweise lässt sich<br />

die Erstellung einer einzigen Relation auch als ein “Migrationsschritt” ansehen. Vorteilhaft bei diesem<br />

Konzept ist die Möglichkeit, eine ausgeführte Migration zurücksetzen zu können – damit wird den<br />

umgekehrten Weg einer Migration beschrieben. In der entwickelten Softwarelösung wird die ganze<br />

Erstellung der zum Datenmodell gehörenden Relationen als eine einzige Migration gesehen, die durch<br />

eine erneute Initialisierung behoben werden kann.<br />

Nachdem die Relationen erstellt sind, lassen sich diejenige ursprünglichen Datenbestände dadrin<br />

speichern – wie herausgestellt, ist dieser Prozess durch den Bezeichner “seeding” beschrieben. In<br />

diesem Fall werden die ursprünglichen Elementen des Datenmodells in der Datenbank mittels DML

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!