Datenbankmigration mit Flyway und Liquibase

Schema-Versionierung, Rollback-Denken, expand/contract Migrationen und Datenkorrekturen ohne Produktionsstillstand.

FlywayLiquibaseDB MigrationExpand/Contract
Datenbankmigration mit Flyway und Liquibase
Datenbankmigration mit Flyway und Liquibase

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.
⌂ Cockpit