Skip to content

Datenbankmigrationen mit Liquibase

Generated artifact. Do not edit manually.

Generated by: scripts/build_compendia.py Regenerate with: python3 scripts/build_compendia.py --compendium dev-handbook --web-and-tex Source of truth: docs/dev/source/

Sprache / Language: Deutsch (DE) · English (EN) | PDF: Deutsches PDF · English PDF

Kompendium: §1 Dokumentationsrichtlinien · §2 Landscape-JSON-Referenz · §3 Minimales Schema & Fallback · §4 Autoreneditoren · §5 Graph-Editor · §6 Flashcard-Editor · §7 Knotensortierung · §8 Liquibase · §9 Auto-Update (SSE)


8. Datenbankmigrationen mit Liquibase

Das Spring-Boot-Backend erzwingt spring.jpa.hibernate.ddl-auto=validate: Hibernate prüft beim Start lediglich die Übereinstimmung der JPA-Entities mit der Datenbank, während Liquibase allein für jede Schemaanlage und -migration zuständig ist.

8.1. Changelog-Struktur und vierstufiger Migrationsablauf

  • Master-Changelog: backend/src/main/resources/db/changelog/db.changelog-master.yaml bindet geordnete Migrationsdateien unter backend/src/main/resources/db/changelog/changes/ ein (beginnend mit 001-initial-schema.yaml samt preConditions und onFail: MARK_RAN, damit bestehende Datenbanken sauber in DATABASECHANGELOG übernommen werden).
  • Vier Schritte bei Schemaänderungen:
  • JPA-@Entity-Klasse unter backend/src/main/java/com/skillpilot/backend/domain/ anpassen.
  • Neue nummerierte Datei NNN-kurzbeschreibung.yaml unter db/changelog/changes/ mit eindeutigem (id, author)-Changeset und expliziten Spaltentypen/Constraints anlegen.
  • Datei per include am Ende von db.changelog-master.yaml registrieren.
  • Backend bzw. Tests starten (./gradlew bootRun oder ./gradlew test), sodass Liquibase die Migration ausführt und Hibernate validate die exakte Entity-Schema-Deckung bestätigt.
  • Unveränderlichkeitsregel: Bereits eingecheckte und ausgeführte Changesets dürfen niemals nachträglich geändert werden (Prüfsummenfehler beim Start); Korrekturen erfolgen stets über ein neues Folge-Changeset.