Skip to content
NeuralSkills
Code-Review

Migrations-Review

Daten- und Schemamigrationen pruefen: Rollback-Sicherheit, Rueckwaertskompatibilitaet und Zero-Downtime.

Experte Kostenlos Veroeffentlicht: 15. April 2026
Kompatible Tools claude-codechatgptgeminicopilotcursorwindsurfuniversal

Das Problem

Migrationen sind die risikoreichsten Aenderungen in jedem System. Eine Schemamigration, die eine NOT-NULL-Spalte ohne Default hinzufuegt, sperrt die Tabelle und scheitert an bestehenden Zeilen. Eine Spaltenumbenennung bricht jede Abfrage, die den alten Namen referenziert — einschliesslich derer auf Servern, die noch nicht aktualisiert sind. Und wenn etwas schiefgeht, bedeutet “einfach zurueckrollen” oft Datenverlust.

Der Prompt

Pruefe die folgende Migration auf Sicherheit und Zero-Downtime-Deployment. Handle als Datenbank-Reliability-Engineer.

DATENBANK: [PostgreSQL / MySQL / MongoDB]
TABELLENGROESSE: [z.B. 50M Zeilen in users, 200M Zeilen in events]
DEPLOYMENT: [z.B. Rolling Deployment, Blue/Green, Single Server]
ORM: [z.B. Prisma, Knex, Django, Alembic, rohes SQL]

MIGRATIONSCODE:
[Migrationsdatei(en) einfuegen]

ANWENDUNGSCODE-AENDERUNGEN:
[Code, der sich zusammen mit der Migration aendert]

Bewerte in diesen Dimensionen:

1. **Rueckwaertskompatibilitaet**
   - Kann der alte Anwendungscode mit dem neuen Schema arbeiten?
   - Kann der neue Anwendungscode mit dem alten Schema arbeiten?
   - Werden Spalten-/Tabellenumbenennungen als Hinzufuegen → Migrieren → Loeschen durchgefuehrt?

2. **Lock-Analyse**
   - Wird eine Operation einen exklusiven Tabellen-Lock erwerben?
   - Wie lange wird die Migration bei 50M+ Zeilen dauern?
   - Sind grosse Datenaktualisierungen in Batches aufgeteilt?

3. **Rollback-Sicherheit**
   - Gibt es eine down() / Rollback-Migration?
   - Ist der Rollback sicher (verliert er Daten)?
   - Sind destruktive Operationen (DROP COLUMN) in eine Bereinigungsmigration verschoben?

4. **Datenintegritaet**
   - Werden Defaultwerte fuer neue NOT-NULL-Spalten bereitgestellt?
   - Sind Datentransformationen idempotent (sicher mehrfach ausfuehrbar)?
   - Werden Foreign-Key-Constraints nach dem Backfill hinzugefuegt?

5. **Performance-Auswirkung**
   - Wird die Migration Connection-Pool-Erschoepfung verursachen?
   - Werden Index-Erstellungen mit CONCURRENTLY (PostgreSQL) durchgefuehrt?

Fuer jedes Problem liefere:
- **Schritt**: Welcher Teil der Migration
- **Risiko**: Was in Produktion schiefgeht
- **Schweregrad**: Downtime / Datenverlust / Performance / Sicherheit
- **Fix**: Sichere Migrationsstrategie mit Code

Beispielausgabe

## Migrations-Review: 3 kritische Probleme

### Downtime-Risiko: ALTER TABLE mit NOT NULL auf 50M Zeilen
Code: `ALTER TABLE users ADD COLUMN phone VARCHAR(20) NOT NULL`
Risiko: Schreibt gesamte Tabelle um. Exklusiver Lock fuer 5-15 Minuten.
Fix (3-Phasen sichere Migration):
  -- Phase 1: Nullable Spalte hinzufuegen (sofort, kein Lock)
  ALTER TABLE users ADD COLUMN phone VARCHAR(20);
  -- Phase 2: In Batches auffuellen (kein Lock)
  UPDATE users SET phone = 'unbekannt' WHERE phone IS NULL AND id BETWEEN $1 AND $2;
  -- Phase 3: NOT NULL setzen
  ALTER TABLE users ALTER COLUMN phone SET NOT NULL;

### Datenverlust: Spaltenumbenennung ohne Uebergangsphase
Code: `ALTER TABLE orders RENAME COLUMN total TO total_cents`
Risiko: Alte Server referenzieren noch `total`. Alle Abfragen schlagen fehl.
Fix: Expand/Contract-Pattern verwenden.

Wann verwenden

Bei jeder Migration vor dem Staging-Einsatz ausfuehren, besonders bei Tabellen mit mehr als 1M Zeilen. Kritisch fuer Teams mit Rolling Deployments, bei denen alter und neuer Code koexistieren muessen.

Profi-Tipps

  • Immer Tabellengroessen angeben — eine Migration, die bei 1.000 Zeilen sicher ist, kann bei 10.000.000 katastrophal sein.
  • Auf produktionsnaher Kopie testen — “Generiere einen Testplan, der diese Migration auf einer Datenbank mit realistischem Datenvolumen validiert.”
  • Destruktive Aenderungen phasenweise — nie Umbenennen, Loeschen und Hinzufuegen in derselben Migration.
  • Runbook anfordern — “Generiere ein Schritt-fuer-Schritt-Runbook fuer die Produktionsausfuehrung dieser Migration, inklusive Rollback-Trigger.”