2017-10-12 4 views
-5

Ich habe eine App ähnlich Kontakte App und verwendet die SQLite zum Speichern von Daten. Ich möchte, dass bei jeder Änderung der Datenbankversion ein Backup der aktuellen Datenbank innerhalb der App erstellt wird und der Kunde die Möglichkeit hat, auf die vorherige Version zurückzugreifen.Erstellen Sie eine Datenbanksicherung in meiner App

In OnUpgrade() -Methode, wenn ich eine neue Tabelle mit anderen Namen erstellen, kann ich nicht die Daten von einer älteren Version kopieren.

Bitte schlagen Sie eine gute Möglichkeit vor, dies zu implementieren. Ich habe im Internet gesucht, konnte aber nicht finden.

Antwort

0

Kurz gesagt, Sie können nur die Datei an den gewünschten Speicherort kopieren, müssten Sie wahrscheinlich auch in der Lage sein, die Datenbank wiederherzustellen, die im Grunde umgekehrt ist.

Dies ist ein Beispiel für den Kern-Code für eine App Ich habe, dass ein Backup macht: -

String dbfilename = this.getDatabasePath(
      DBConstants.DATABASE_NAME).getPath(); 
    dbfile = new File(dbfilename); 
    backupfilename = directory.getText().toString() + 
      "/" + 
      backupfullfilename.getText().toString(); 
    try { 
       FileInputStream fis = new FileInputStream(dbfile); 
       OutputStream backup = new FileOutputStream(backupfilename); 

       //byte[] buffer = new byte[32768]; 
       int length; 
       while((length = fis.read(buffer)) > 0) { 
        backup.write(buffer, 0, length); 
       } 
       backup.flush(); 
       backup.close(); 
       fis.close(); 
      } 
      catch (IOException e) { 
       //Error handling here......... 
      } 

Backup ist der Pfad, in dem die Sicherung gespeichert werden soll.

Verwandte Themen