DB-Migration: Datenverlust bei App-Updates verhindern #49
Labels
No labels
block-planning
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
infrastructure
invalid
planning
priority:high
priority:low
question
refactoring
status:backlog
status:done
status:in-progress
status:todo
tech-decision
test
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: bollwerkadmin/bollwerk#49
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
App-Updates dürfen unter keinen Umständen gespeicherte Daten löschen. Bei jedem Schema-Wechsel der Room-Datenbank muss eine automatische Migration stattfinden, die bestehende Daten vollständig erhält.
Problem
Ohne explizite Migrationsstrategie löscht Room bei Schema-Änderungen die gesamte Datenbank (fallbackToDestructiveMigration). Für eine Inventar-App, in der User ihre Vorräte mühsam erfasst haben, ist das inakzeptabel.
Anforderungen
1. Automatische DB-Migration beim Erststart einer neuen Version
fallbackToDestructiveMigrationist verboten und darf nicht im Code vorkommen2. Interaktive Migration bei neuen Pflichtfeldern
3. Migrations-Checkliste für Entwickler
Jede Schema-Änderung muss folgende Schritte durchlaufen:
Technische Umsetzung
addMigrations()stattfallbackToDestructiveMigration()MigrationTestHelperfür jeden MigrationspfadAkzeptanzkriterien
fallbackToDestructiveMigrationkommt im gesamten Projekt nicht vorAbgeschlossen (2026-05-16)
Durchgeführte Aufgaben
oom.schemaLocation\ gesetzt; \pp/schemas/2.json\ eingecheckt
Entwickler-Checkliste für künftige Schema-Änderungen
Steht als KDoc-Kommentar in \Migrations.kt:
Verifikation