Digitalisierung & Technologie
Was ist eine Datenbank-Migration?
Eine Datenbank-Migration ist eine versionierte Änderung an der Datenbankstruktur: neue Tabellen, geänderte Felder, verschobene Daten. Sie hält Entwicklung und Produktion synchron.
Eine Datenbank-Migration ist eine kontrollierte, versionierte Änderung an der Struktur einer Datenbank. Das können neue Tabellen sein, neue Spalten in bestehenden Tabellen, umbenannte Felder, geänderte Datentypen oder das Verschieben von Daten von einem Ort in einen anderen.
Der Begriff klingt technisch, beschreibt aber ein alltägliches Problem in der Softwareentwicklung: Software verändert sich, und mit ihr müssen sich die zugrunde liegenden Datenstrukturen verändern. Das muss kontrolliert und reproduzierbar passieren.
Warum Migrationen versioniert sein müssen
Stell dir vor, drei Entwickler arbeiten gleichzeitig an einer Anwendung. Einer fügt eine neue Tabelle hinzu, der zweite ändert eine Spalte, der dritte setzt die Entwicklungsumgebung neu auf. Ohne Migrationsversionierung weiß niemand, in welchem Zustand die Datenbank sein soll.
Mit versionierten Migrationen ist jede Änderung an der Datenbankstruktur als Migrationsdatei festgehalten. Die Migrationsdateien werden gemeinsam mit dem Code verwaltet, in der Regel im selben Git-Repository. Wenn jemand die Anwendung frisch installiert, führt er alle Migrationen in der richtigen Reihenfolge aus und landet in exakt dem aktuellen Datenbankzustand.
Migrationen in der Produktion
Das heikelste Szenario ist die Migration einer Produktionsdatenbank. Millionen von Datensätzen, laufender Betrieb, kein Spielraum für Fehler. Hier sind einige Praktiken relevant: Migrationen so schreiben, dass sie rückwärtskompatibel sind, also dass die alte Anwendungsversion noch funktioniert während die Migration läuft. Lange laufende Migrationen in kleinere Schritte aufteilen. Backups vor der Migration zwingend erstellen.
Viele populäre Frameworks bringen Migrationswerkzeuge direkt mit: Laravel hat Eloquent Migrations, Django bringt eigene Migrationen mit, Ruby on Rails hat Active Record Migrations.
Wenn du eine individuelle Softwarelösung entwickelst oder bestehende Systeme modernisieren willst, beraten wir dich bei der technischen Architektur. Buche einen kostenlosen Termin.
Lass uns herausfinden, was bei dir möglich ist.
Kostenlos, unverbindlich, ohne Verkaufsdruck. Wir schauen uns gemeinsam an, wo du stehst, was dich bremst und was die nächsten sinnvollen Schritte wären.