2012-04-01 7 views
1

Ich habe wie 400 Datensätze in meiner Datenbank, angenommen, dies ist die erste Version meiner Anwendung. In der nächsten Version habe ich mehr als 15 Datensätze hinzugefügt und 20 der 400 bereits vorhandenen geändert. Muss ich in diesem Fall die Version der Datenbank ändern? und wenn ja, muss ich etwas in onUpgrade() Funktion tun oder nur die Befehle ändern, wo ich einfügen und alles wird gut?Aktualisierung Android-Datenbank

Vielen Dank.

+0

Hat sich Ihr Schema geändert? –

+0

Nein, es ist das gleiche. –

+0

Nur einige der Datensatzfelder ändern und hinzugefügt weitere Datensätze. –

Antwort

3

Ich denke, Sie haben eine Datenbank mit vorgefüllten Datensätzen. Ist die DB von Benutzern aktualisierbar? Wenn nicht, können Sie die neue Datenbankdatei in der aktualisierten APK einfach versenden und damit fertig sein. Wenn die Anwendungslogik benutzergesteuerte Datenbankänderungen zulässt, können Sie die alten beim Upgrade nicht wegwerfen. Sie müssen voreingestellte Datensatzänderungen im Auge behalten, die installierte Datenbankversion irgendwo aufbewahren (d. H. In den Einstellungen) und die Datensätze aktualisieren, wenn die App aktualisiert wird. Möglicherweise müssen Sie sich auch mit Schemaänderungen befassen.

+0

Die Datenbank kann nicht von Benutzern aktualisiert werden, nur von mir. und das Schema wird überhaupt nicht geändert, und ich möchte alle vorherigen Daten und alle wieder löschen. –

+1

Senden Sie einfach eine neue Datei mit einem Update. Wenn es von Assets in einen Datenordner kopiert wird, kopieren Sie die Datei beim Aktualisieren. –

+0

Ich füge die Daten (geschrieben in Code/nicht aus Datei) mit booleschen gemeinsamen Einstellungen für den ersten Besuch der Anwendung ein, kann ich diesen booleschen Wert beim Upgrade nur auf den Standardwert setzen? und ändern Sie die Datenbankversion beim Upgrade. –

1
Update() 

wird aufgerufen, wenn Sie bereits vorhandene Spalten Daten ändern.

onUpgrade() 

wird aufgerufen, wenn die Struktur Ihrer Tabelle geändert wird. zum Beispiel, wenn Sie eine Spalte hinzufügen.