Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Datenbankmigrationen | Arbeiten mit Datenbanken
Spring Boot Backend
course content

Kursinhalt

Spring Boot Backend

Spring Boot Backend

1. Grundlagen der Backend-Entwicklung
2. Spring Boot Grundlagen
3. RESTful API
4. Arbeiten mit Datenbanken
5. Testen von Backend-Anwendungen

book
Datenbankmigrationen

Dieses Bild zeigt den Fortschritt der Datenbankmigrationen über Versionen hinweg. Jede Version spiegelt Änderungen an der Datenbankstruktur wider, wie das Erstellen von Tabellen, Ändern von Feldern oder Hinzufügen/Entfernen von Spalten, um den Anforderungen der Anwendung gerecht zu werden.

Beim Entwickeln einer Anwendung kann es notwendig sein, das Datenbankschema zu ändern: neue Tabellen hinzufügen, bestehende aktualisieren, Indizes einführen und so weiter.

Migrationen helfen dabei, diese Änderungen auf eine sequenzielle und organisierte Weise zu verwalten, um die Datenintegrität zu gewährleisten und das Datenbankschema mit dem Code der Anwendung in Einklang zu halten. Für Migrationen werden wir Flyway verwenden.

Was ist Flyway?

Eine der Schlüsselfunktionen von Flyway ist die Unterstützung von Migrationsversionierung, die es Ihnen ermöglicht, Änderungen an der Datenbankstruktur nachzuverfolgen und bei Bedarf auf frühere Versionen zurückzusetzen.

Erstellen einer Migration mit Flyway

Um zu beginnen, fügen Sie die Flyway Abhängigkeit zu Ihrem Spring Boot-Projekt hinzu. Da wir Maven verwenden, fügen Sie die folgende Abhängigkeit zu Ihrer pom.xml Datei hinzu:

Wir werden auch eine weitere JPA-Abhängigkeit hinzufügen, die zusammen mit Flyway arbeitet. Wir werden JPA später noch detaillierter behandeln.

Diese Abhängigkeit wird uns helfen, Flyway in unser Projekt zu integrieren! Aber das ist noch nicht alles, wir müssen es noch konfigurieren!

Natürlich muss Flyway wissen, mit welcher Datenbank es arbeiten wird, daher müssen wir die Datenbank explizit angeben und Zugangsdaten bereitstellen.

Die Hauptkonfigurationen können in application.properties festgelegt werden:

Wir müssen die url, user und password angeben, damit Flyway mit unserer Datenbank arbeiten kann.

Um jedoch zu vermeiden, diese Werte mehrfach einzugeben, können wir sie mit der ${} Syntax von anderen Parametern referenzieren.

Im vorherigen Kapitel haben wir eine Datenbank my_database erstellt und eine Tabelle book hinzugefügt. Wir können jedoch jetzt die Tabelle book löschen, da sie durch eine Migration erstellt wird.

Jetzt ist alles bereit, um unsere erste Migration in der Anwendung zu erstellen! Wir müssen einen db Ordner im resources Verzeichnis erstellen, und innerhalb dieses Ordners einen weiteren mit dem Namen migration. Der vollständige Pfad sollte so aussehen: src/main/resources/db/migration.

Im Migrationsverzeichnis können wir nun Dateien erstellen, in denen wir unsere Änderungen definieren. Das Dateiformat sollte V<version>__<description>.sql sein.

Migrationen werden in der Reihenfolge ihrer Versionen angewendet. Die Versionsnummerierung muss sequenziell und ohne Lücken sein. Zum Beispiel, wenn Sie Migrationen V1__init.sql und V2__add_column.sql haben, sollte die nächste Migration V3__another_change.sql sein.

Innerhalb der Migrationsdatei können Sie SQL-Skripte schreiben, um die Struktur der Datenbank zu definieren, neue Tabellen, Spalten usw. zu erstellen.

Lassen Sie uns das Skript zum Erstellen der books Tabelle schreiben, die wir im vorherigen Kapitel manuell erstellt haben, in unserer V1__create_table_books.sql Datei.

Sie können auch ein Parameter zur Datei application.properties hinzufügen, der angibt, wo sich die Migrationen befinden, damit Flyway den genauen Pfad zu den Migrationsdateien kennt:

Danach führen Sie die Anwendung aus, und Sie sollten sehen, dass die Tabelle erstellt wurde mit den Feldern, die Sie in der Migration angegeben haben!

Sie können die erste Version der Migration nicht mehr ändern. Für jede Änderung an Ihrer Tabelle müssen Sie eine neue Migrationsdatei erstellen und das neue Skript dort hinzufügen!

Warum sind Migrationen wichtig?

Migrationen sind notwendig für eine geordnete Verwaltung von Änderungen in der Datenbank, Erhaltung der Historie und ermöglichen Rollbacks, wenn nötig.

Sie helfen, die Datenbankstruktur über verschiedene Umgebungen wie Entwicklung, Test und Produktion zu synchronisieren, während sie auch den Aktualisierungsprozess automatisieren, das Risiko von Fehlern reduzieren und sicherstellen, dass das Datenbankschema konsistent mit dem Anwendungscode bleibt.

Jede Migration dokumentiert auch spezifische Änderungen, was es einfacher macht, das Datenbankschema zu verstehen und zu pflegen.

Zusammenfassung

Die Verwendung von Flyway vereinfacht und automatisiert den Prozess der Verwaltung von Datenbankänderungen, was zu einer zuverlässigeren und effizienteren Anwendungsentwicklung führt.

1. Was ist eine Datenbankmigration?

2. Welche Rolle spielen Migrationsversionen?

Was ist eine Datenbankmigration?

Was ist eine Datenbankmigration?

Wählen Sie die richtige Antwort aus

Welche Rolle spielen Migrationsversionen?

Welche Rolle spielen Migrationsversionen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
We're sorry to hear that something went wrong. What happened?
some-alt