Backup / Datenbank Restore klappt nicht

T

thomas.b.reuter

Neues Mitglied
0
Meine App benutzt eine SQLite Datenbank. Momentan versuche ich eine Backup / Restore Funktionalität zu implementieren. Meine Recherche ergab, daß die SQLite Datenbankdatei angeblich einfach kopiert werden kann (Export und Import).

Genau das habe ich dann implementiert: Beim Start meiner App wird automatisch die SQLite Datei auf die SD Karte kopiert. Eine alte Backupdatei wird vorher umbenannt (Zeitstempel hintendranhängen, d.h. alle Backups werden erstmal aufgehoben).

Falls der Benutzer auf den "Restore" button drückt, wird die Backupdatei von der SD Karte zurück ins System kopiert, d.h. die Datenbank die von der App benutzt wird, wird überschrieben und sollte im Zustand vor dem letzten erfolgreichen Backup sein.

Ich habe darauf geachtet, daß keine der drei Activities der App zum "Restore" Zeitpunkt die Datenbank offen hat (close in der onPause-Methode).

Keine der Kopieraktionen liefert eine Fehlermeldung / Exception, aber nach dem "Restore", d.h. Zurückkopieren des Backup scheint die Datenbank leer zu sein, d.h. meine App findet keine Einträge mehr. Ich kann die Datenbank dann auch wieder ganz normal benutzen und neue Einträge hinzufügen.

Bevor ich anfange, meinen Code hier reinzustellen, habe ich eine generelle Frage zu dem beschriebenen Verfahren:
Ist das prinzipiell ok, daß man die Datenbankdatei einfach hin- und herkopiert, solange man darauf achtet, daß die Datenbank nur zum Kopieren (d.h. nur einmal) geöffnet ist?
Oder lauern hier noch weitere Falltüren, die es zu beachten gilt?
 
... ok, ich glaube das wars: Leider wird in der schönen Java-Dokumentation nicht erwähnt, daß FileReader und FileWriter wohl nur für Textdateien vorgesehen sind. Jedenfalls habe ich meine Kopierfunktion einfach auf InputStream bzw. OutputStream umgestellt und jetzt klappt es! Zumindest im Emulator ...
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.676
Sempervivum
S
SaniMatthias
Antworten
19
Aufrufe
962
swa00
swa00
Zurück
Oben Unten