Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt bestellen
* versandkostenfrei in (D) und (A)
Pfeil 10 Datenbankzugriff mit ActiveRecord
  Pfeil 10.1 Einführung
  Pfeil 10.2 Eine ActiveRecord-Model-Klasse generieren
  Pfeil 10.3 Rake-Tasks zum Verwalten von Datenbanken
  Pfeil 10.4 Getter- und Setter-Methoden
  Pfeil 10.5 Erstellen, bearbeiten und löschen
  Pfeil 10.6 Suchen
  Pfeil 10.7 Datenbankschema und Migrations
  Pfeil 10.8 Migration-Skripte
  Pfeil 10.9 Migration-Befehle im Detail
  Pfeil 10.10 Assoziationen
  Pfeil 10.11 Validierung
  Pfeil 10.12 Statistische Berechnungen
  Pfeil 10.13 Callbacks
  Pfeil 10.14 Vererbung


Rheinwerk Computing - Zum Seitenanfang

10.7 Datenbankschema und Migrations  topZur vorigen Überschrift

Migrationen

Migrationen sind eine der nützlichsten Funktionen von Rails, wenn es um die Erstellung und Änderung des Datenbankschemas (Das Datenbankschema legt die in der Datenbank enthaltenen Tabellen fest. In relationalen Datenbanksystemen, wie Oracle, PostgreSQL, MySQL usw., wird das Datenbankschema mittels SQL definiert) geht.

Beispiel

Stellen Sie sich folgendes Szenario vor:

Sie haben eine Webapplikation erstellt (z. B. eine Weblog-Applikation), die bereits von vielen Benutzern erfolgreich auf Ihrer Website eingesetzt wird. Wenn Sie nun die Applikation korrigieren bzw. verbessern, kommt es häufig nicht nur zu Änderungen am Quelltext, sondern auch zu Änderungen am Datenbankschema.

Änderungen am Datenbankschema

Es ist ein Trugschluss zu glauben, man könne das Datenbankschema in der Planungsphase exakt festlegen. Während der Entwicklung einer Applikation durchläuft das Datenbankschema eine Evolution. Am Anfang werden Tabellen erstellt. Später wird das Datenbankschema durch neue Tabellenfelder und sogar durch neue Tabellen ergänzt. Es kann auch vorkommen, dass der Datentyp eines Feldes verändert wird oder ganze Tabellen wieder entfernt werden.

SVN oder CVS

Wenn Sie nun eine neue Version Ihrer Applikation mit den Änderungen veröffentlichen, stellt sich die Frage, wie die anderen Entwickler oder Benutzer die alte Version auf den neuesten Stand bringen. In der Regel stellt es kein Problem dar, den alten Quelltext einfach durch den neuen Quelltext zu ersetzten (z. B. mit Hilfe eines Versionierungs-Tools, wie Subversion oder CVS). Der springende Punkt liegt in der Aktualisierung des Datenbankschemas.

Das gleiche Problem ergibt sich auch, wenn Sie eine lokale Datenbank für die Entwicklung sowie eine Datenbank für den Produktionsserver verwenden. Auch hier müssen die Änderungen an der Entwicklungs-Datenbank auf dem Produktionsserver übernommen werden.

Wir können nicht einfach die Datenbank ersetzen, da dabei die Daten, die gegebenenfalls in jeder Datenbank unterschiedlich sind, verloren gehen.

Migration mit SQL

Die einfachste Lösung besteht darin, SQL-Code (Zum Ändern des Datenbankschemas gibt es bestimmte SQL-Befehle, wie z. B. CREATE TABLE und ALTER TABLE . Diese Befehle werden als Data Definition Language, kurz DDL, zusammengefasst) zu verwenden, der die Änderungen beschreibt. Das Problem an SQL besteht darin, dass sich trotz Standards die SQL-Befehle bei unterschiedlichen Datenbanksystemen im Detail unterscheiden. Da wir den anderen Entwicklern nicht diktieren möchten, welches Datenbanksystem sie zu verwenden haben, müssen wir einen Weg finden, datenbankunabhängig die Änderungen zu beschreiben.

Migration-Skripte

Hierfür bietet Rails mit der Klasse ActiveRecord::Migration eine sehr praktische Lösung. Für jede Änderung am Datenbankschema wird ein sogenanntes Migration-Skript angelegt. Innerhalb dieser Skripte werden die Änderungen am Datenbankschema in Ruby beschrieben. Diese Ruby-Befehle werden dann von Rails automatisch in SQL-Befehle für die in der Konfigurationsdatei eingestellte Datenbank umgesetzt. Das heißt, die Ruby-Befehle, die die Änderungen am Datenbankschema beschreiben, sind in der Regel unabhängig vom Datenbanksystem. Diese Migration-Skripte müssen bei jedem Update der Applikation ausgeführt werden, damit die Änderungen auf die Datenbank angewendet werden können.

Keine Datenbanksystemunabhängigkeit um jeden Preis
Migration bietet zwar die Möglichkeit der Datenbanksystemunabhängigkeit, der Preis dafür ist aber, dass besondere Fähigkeiten eines bestimmten Datenbanksystems nicht genutzt werden. Wenn Sie z. B. eine Rails-Applikation für einen bestimmten Kunden erstellen, der bereits das Datenbanksystem festgelegt hat, so ist Datenbanksystemunabhängigkeit nicht unbedingt notwendig. Wenn Sie jedoch eine Applikation für eine breite Massse (wie z. B. ein Weblogsystem) erstellen, so sollten Sie sich nicht auf ein Datenbanksystem fixieren, um den Nutzern die Wahlmöglichkeit zu überlassen.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de