Datenbankmigration mit Flyway und Liquibase
Schema-Versionierung, Rollback-Denken, expand/contract Migrationen und Datenkorrekturen ohne Produktionsstillstand.
FlywayLiquibaseDB MigrationExpand/Contract
In dieser Datei
Expand/Contract
Produktionsmigrationen sollten kompatibel ausgerollt werden. Erst erweitern, dann Code umstellen, dann alte Struktur entfernen.
Flyway vs Liquibase
Flyway ist besonders einfach für lineare SQL-Versionen. Liquibase ist stark bei deklarativen Changesets und komplexeren Deployment-Prozessen. Entscheidend ist weniger das Tool als die Disziplin im Prozess.
Migrationsbeispiel
SQL Migration
-- V20260707_01__add_order_audit.sql ALTER TABLE orders ADD COLUMN created_by VARCHAR(120); ALTER TABLE orders ADD COLUMN trace_id VARCHAR(80); UPDATE orders SET created_by = 'migration', trace_id = 'baseline' WHERE created_by IS NULL; ALTER TABLE orders ALTER COLUMN created_by SET NOT NULL;
Praxisübertragung auf das V4-Beispielprojekt
Entscheidung
Dokumentiere die getroffene Architekturentscheidung als ADR, inklusive Alternativen, Folgen und Betriebsrisiken.
Code-Nachweis
Markiere verwendete Entwurfsmuster direkt im Code und ergänze sie in docs/design-patterns.md.
Betrieb
Definiere Metrik, Alert, Runbook-Schritt und Rollback-Option für diesen Bereich.
Typische Fehlerbilder
- Framework-Feature wird eingesetzt, ohne fachliche Grenze zu verstehen.
- Technische Wiederholung wird nicht idempotent gemacht.
- Observability wird erst nach Produktionsproblem ergänzt.
- Tests prüfen nur Happy Path und keine Wiederanläufe.