Datenbankmigrationen mit Liquibase
Generated artifact. Do not edit manually.
Generated by:
scripts/build_compendia.pyRegenerate with:python3 scripts/build_compendia.py --compendium dev-handbook --web-and-texSource 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.yamlbindet geordnete Migrationsdateien unterbackend/src/main/resources/db/changelog/changes/ein (beginnend mit001-initial-schema.yamlsamtpreConditionsundonFail: MARK_RAN, damit bestehende Datenbanken sauber inDATABASECHANGELOGübernommen werden). - Vier Schritte bei Schemaänderungen:
- JPA-
@Entity-Klasse unterbackend/src/main/java/com/skillpilot/backend/domain/anpassen. - Neue nummerierte Datei
NNN-kurzbeschreibung.yamlunterdb/changelog/changes/mit eindeutigem(id, author)-Changeset und expliziten Spaltentypen/Constraints anlegen. - Datei per
includeam Ende vondb.changelog-master.yamlregistrieren. - Backend bzw. Tests starten (
./gradlew bootRunoder./gradlew test), sodass Liquibase die Migration ausführt und Hibernatevalidatedie 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.