Datenbankmigration ohne Downtime planen (Expand and Contract)

Plane eine Schemaänderung in Produktion ohne Ausfall: Phasen Expand, Migrate und Contract, Backfill in Batches, Prüfabfragen und ein Rollback-Pfad für jeden Schritt. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 5 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.

Experte · Code · Redaktionelle Prüfung ausstehend

Prompt

Handle als Datenbank-Engineer mit Erfahrung in Produktionsmigrationen ohne Downtime.

Die geplante Änderung: {{aenderung}}
- Engine und Version: {{engine}}
- Größe der betroffenen Tabellen und Last: {{volumen}}
- Deployment der Anwendung: {{deployment}}
- Migrationswerkzeug: {{werkzeug}}

Liefere:
1. Eine Risikoanalyse: Welche Anweisungen sperren oder schreiben die Tabelle auf dieser Engine und Version neu, und wie lange könnten sie bei diesem Volumen blockieren (qualitativ, wenn Daten fehlen)?
2. Einen Phasenplan nach dem Muster Expand and Contract. Pro Phase: exaktes SQL, Änderungen am Anwendungscode, in welchem Deployment sie ausgeliefert wird und die Bedingung für die nächste Phase.
   - Expand: Spalten, Tabellen oder Indizes hinzufügen, ohne die vorherige Codeversion zu brechen (keine langen Sperren, nebenläufige Indexerstellung, wo möglich).
   - Doppeltes Schreiben oder vorübergehende Synchronisation zwischen alter und neuer Struktur.
   - Backfill in Batches: idempotentes, wiederaufnehmbares Skript, Batchgröße, Pausen und Fortschrittsmessung.
   - Lesezugriffe auf die neue Struktur umstellen.
   - Contract: die alte Struktur erst entfernen, wenn nichts sie mehr nutzt.
3. Prüfabfragen, die bestätigen, dass alte und neue Daten übereinstimmen.
4. Einen Rollback-Plan pro Phase und den Punkt, ab dem ein Zurück nicht mehr trivial ist.
5. Was während der Migration zu überwachen ist (Sperren, Replikationsverzug, Latenz, Fehler) und wann abzubrechen ist.
6. Eine abschließende Checkliste für den Tag der Umstellung.

Einschränkungen:
- Geh davon aus, dass einige Minuten lang zwei Codeversionen parallel laufen, außer ich sage etwas anderes.
- Erfinde keine Tabellen- oder Spaltennamen: nutze meine oder [AUSFÜLLEN].
- Wenn kritische Informationen fehlen (z. B. Replikate oder Fremdschlüssel), frag zuerst nach.
- Empfiehl, den gesamten Plan im Staging mit einer realistischen Datenkopie zu proben.

So verwenden Sie ihn

  1. Beschreibe die Änderung mit den echten Tabellen- und Spaltennamen.
  2. Nenne dein Deployment-Verfahren (Rolling, Blue-Green, Einzelinstanz) und das Migrationswerkzeug.
  3. Probe jede Phase im Staging, bevor du die Produktion anfasst.
  4. Hänge den Plan an das Change-Ticket, damit der Rollback griffbereit ist.

Anwendungsbeispiel

Änderung: kunden.voller_name in vorname und nachname aufteilen · PostgreSQL 15 · 8 Mio. Zeilen · Rolling Deployment auf Kubernetes · Alembic.

Beispielergebnis

1. Risiko

In PostgreSQL 15 ändert ADD COLUMN ohne Default nur den Katalog, braucht aber kurz einen ACCESS EXCLUSIVE-Lock: Läuft davor eine lange Abfrage, stauen sich alle Schreibzugriffe dahinter. Deshalb setzen wir lock_timeout.

2. Phasenplan

PhaseDeploymentWeiter, wenn…
ExpandNSpalten ohne Fehler angelegt
Doppeltes SchreibenN+1Alle 4 Replikate schreiben beide Strukturen
BackfillSkript0 offene Zeilen
Neu lesenN+2Prüfabfragen liefern 0
ContractN+3Kein Code liest mehr voller_name
-- Phase 1: Expand (schnell scheitern statt Tabelle blockieren)
SET lock_timeout = '2s';
ALTER TABLE kunden
    ADD COLUMN vorname text,
    ADD COLUMN nachname text;

-- Phase 3: Backfill in Batches, idempotent und per id fortsetzbar
UPDATE kunden
SET vorname  = split_part(voller_name, ' ', 1),
    nachname = NULLIF(substr(voller_name,
                 length(split_part(voller_name, ' ', 1)) + 2), '')
WHERE id > :letzte_id AND id <= :letzte_id + 5000
  AND vorname IS NULL;

Achtung: Die Aufteilungsregel ist [AUSFÜLLEN]. Ein Schnitt am ersten Leerzeichen scheitert bei Doppelvornamen ohne Bindestrich oder Namen wie „von der Heide“; prüfen Sie vor dem Backfill eine Stichprobe…

Wichtige Fakten

Kategorie
Programmierung & Entwicklung · SQL
Ausgabetyp
Code
Niveau
Experte
Entwickelt für
ChatGPT, Claude, Gemini und Microsoft Copilot
Verifiziert in
Redaktionelle Prüfung ausstehend
Variablen
Schemaänderung, Engine und Version, Volumen und Last, Deployment-Verfahren und Migrationswerkzeug
Sprache
Deutsch
Preis
Kostenlos, ohne Anmeldung
Aktualisiert
07.11.2026

Häufig gestellte Fragen

Was bedeutet Expand and Contract?

Eine inkompatible Änderung wird in mehrere kompatible Schritte zerlegt: Neues hinzufügen, ohne Altes zu entfernen, Daten und Lesezugriffe migrieren und das Alte zuletzt löschen. So funktioniert jedes Deployment mit der vorherigen Codeversion.

Warum Backfill in Batches statt eines einzigen UPDATE?

Ein riesiges UPDATE kann Zeilensperren lange halten, viel Log erzeugen und Replikate zurückfallen lassen. Kleine, wiederaufnehmbare Batches begrenzen das und lassen sich bei Problemen stoppen.

Wofür ist dieser Prompt gedacht?

Plane eine Schemaänderung in Produktion ohne Ausfall: Phasen Expand, Migrate und Contract, Backfill in Batches, Prüfabfragen und ein Rollback-Pfad für jeden Schritt.

Mit welchen KI-Tools funktioniert er?

Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.

Wie passe ich den Prompt an?

Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Schemaänderung, Engine und Version, Volumen und Last, Deployment-Verfahren und Migrationswerkzeug). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.

Brauche ich Erfahrung, um ihn zu verwenden?

Er ist für Experten: Er richtet sich an Personen mit Erfahrung im Thema, die das Ergebnis beurteilen und anpassen können.

Ist dieser Prompt kostenlos?

Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.

Kann ich der KI-Ausgabe vertrauen?

Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.

Ähnliche Prompts