Warning: include_once(/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php): failed to open stream: No such file or directory in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: include_once(): Failed opening '/var/www/html/pmwiki-2.2.86/cookbook/soap4pmwiki/soap4pmwiki.php' for inclusion (include_path='.:/opt/php/lib/php') in /var/www/html/fields/dbp13/local/config.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/fields/dbp13/local/config.php:4) in /var/www/html/pmwiki-2.2.86/pmwiki.php on line 1250
Datenbankpraktikum SS 2013 - Datenvisualisierung - Raketasks

Die Raketasks

Swen Wenzel

Um die Migration bequem ausführen zu können, wurde ein Rakefile mit verschiedenen Tasks angelegt.
Die Tasks gehören zum Namespace "migrate", was bedeutet, dass sie mit dem Konsolenbefehl "rake migrate:<task>" ausgeführt werden können.
Bei der Benennung des Namespace und der Tasks spielte die intuitive Benutzung eine große Rolle. So kann man, wie zu erwarten, mit dem Befehl "rake migrate:all" alle Daten migrieren.
Doch um alle Daten zuverlässig aktuell zu migrieren sollte das Kommando "rake migrate:with_sql_to_empty_db" ausgeführt werden.
Im Folgenden werden die verschiedenen Tasks noch genauer erklärt.

migrate:all / migrate(standard Task)

Dies wird als standard Task für den namespace migrate ausgeführt, weswegen "rake migrate" als Kommando ausreichend ist.
Migriert alle Daten aus dem Datawarehouse in die Datenbank, wobei auf die Abhängigkeiten der Tabellen geachtet wird.
Funktioniert nur bedingt, da lediglich fehlende Daten ergänzt aber vorhandene nicht aktualisiert werden.
Daher sollte lieber with_sql_to_empty_db ausgeführt werden.

migrate:sql

Durch diesen Befehl werden eine Reihe von SQL-Inserts aus der Datei "db/locations.sql" ausgeführt. Diese enthalten alle locations, federal states und countries die bis einschließlich load 27 (WS12/13) in dem Datawarehouse vorhanden waren.
Das laden der Datensätze aus dieser Datei spart enorm viel Zeit, da keine Queries an Google gesendet werden müssen.
Es wäre auch möglich gewesen die Daten in die Datei seeds.rb einzutragen, doch auch diese Datei wird nur per Rakebefehl ausgeführt, womit die Funktionalität gleich bleibt.

migrate:with_sql

Funktioniert wie all, nur dass vorher sql ausgeführt wird, wodurch vorgespeicherte Daten für locations, federal states und countries in die Datenbank geladen werden.

migrate:to_empty_db

Funktioniert wie all, nur dass vorher nothing_but_rebuild_db ausgeführt, damit die Datenbank der Applikation zurückgesetzt wird.

migrate:with_sql_to_empty_db

Funktioniert wie with_sql aber vorher wird der Task nothing_but_rebuild_db ausgeführt, wodurch die Daten in eine leere Datenbank geladen werden.

migrate:nothing_but_rebuild_db

Durch diesen Befehl wird nichts migriert, aber die Datenbank der Applikation wird komplett zurückgesetzt.
Das geschiet mit dem von RoR zur Verfügung gestellten Befehl db:reset, der alle Tabellen löscht und anhand der Datei schema.rb wiederherstellt.

migrate:<Tabelle>

Mit dem Kommando "rake migrate:<Tabelle>" wird die entsprechende Tabelle migriert (z.B. "rake migrate:teaching_units").
Allerdings gibt es hierbei zwei Ausnahmen, nämlich die Tabellen countries und federal_states, welche zusammen mit locations migriert werden, weil es sich so ergeben hat.
Bei den anderen Tabellen müssen vor allem die Abhängigkeiten untereinander beachtet werden (Siehe Abhängigkeiten der Tabellen).
So ist es beispielsweise nicht möglich die Studenten vor den Locations zu migrieren.
Daher ist es sinnvoll die Tabellen nur über "with_sql_to_empty_db" auszuführen.


Page last modified on August 23, 2013, at 07:00 PM