Datenbank-Migration testen, ohne Nutzerdaten zu verlieren
Eine Datenbank-Migration läuft auf deinem Handy und scheitert auf dem eines Nutzers, der drei Versionen übersprungen hat. Der Schaden ist Datenverlust, und den verzeihen Nutzer nicht. Teste Upgrades als eigene Funktion, nicht als Nebensache.
Eine Matrix alter Versionen aufbauen
Liste jede Schema-Version auf, die noch im Umlauf ist. Hebe für jede eine Datenbankdatei oder einen App-Build auf, der sie erzeugt. Migriere dann jede auf die aktuelle Version, nicht nur die vorherige. Nutzer mit alten Geräten überspringen Updates.
Mit realistischen Daten testen
- Eine fast leere Datenbank und eine große mit Tausenden Zeilen.
- Zeilen mit Nullwerten, sehr langem Text, Emoji und ungewöhnlichen Zeichen.
- Daten, die frühere Fehler erzeugt haben. Alte Versionen haben Dinge geschrieben, die du heute nicht mehr schreiben würdest.
Mehr prüfen als „es öffnet sich“
Vergleiche nach der Migration Zeilenzahlen und Stichproben mit der alten Datei, starte die Hauptbildschirme und prüfe, ob die App weiter schreiben kann. Eine Migration, die gelingt, aber eine Spalte leer lässt, ist der schlimmste Fall, weil nichts abstürzt.
Den Grundfall automatisieren
Frameworks wie Room (Android) und Core Data oder GRDB (iOS) unterstützen Migrationstests: altes Schema öffnen, Migration ausführen, Ergebnis prüfen. Nimm diese in den Build auf, damit sie bei jeder Änderung laufen.
Auf Fehler vorbereiten
Sichere vor einem zerstörenden Schritt, wenn möglich, und führe die Migration in einer Transaktion aus, damit ein Fehler zurückrollt, statt ein halbes Schema zu hinterlassen. Protokolliere den Fehler, damit du ihn in den Absturzberichten siehst.
Fragen von Entwicklern
Kann ich einfach die Tabelle löschen und neu synchronisieren? Nur, wenn die Daten auf einem Server liegen und du sicher bist, dass die Synchronisierung vollständig ist. Rein lokale Daten wären weg.
Wie helfen Tester? Bitte Tester, die den alten Build installiert haben, zu aktualisieren statt neu zu installieren. Das ist der echte Upgrade-Pfad.
Du brauchst Tester für deine App? Öffne eine Testgruppe bei AppReviewX. Kostenlos starten