Sono database eliminati quando un'applicazione viene aggiornata?
-
26-09-2019 - |
Domanda
Ho aggiunto una tabella a un database che i miei usi applicativi e ha scritto del codice per il lavoro con quel tavolo. Tutto ha funzionato bene per la mia sul mio telefono e nell'emulatore, così ho inviato l'aggiornamento per il mercato.
Questa causa me ricevere un bel paio di tracce di stack per la causa della console sviluppatori da
android.database.sqlite.SQLiteException: no such table: flag
(bandiera è la nuova tabella).
Questo mi ha fatto chiedendo, sono banche dati eliminati quando l'applicazione viene aggiornata? Attualmente nella mia applicazione sto cercando di vedere se il database esiste, e se lo fa, allora io non ricrearla.
Non ho capito questo prima ho mandato l'aggiornamento perché ho disinstallato l'applicazione prima di caricare la versione di debug.
Da allora ho messo a punto un aggiornamento rapido che ha un blocchi try di cattura intorno tutti gli accessi alla nuova tabella (che avrebbe dovuto essere lì, in primo luogo, lo so, lo so).
Soluzione
I dati dell'utente non vengono cancellati, compresi i database.
Il DB ha un numero di versione. Quando si aggiorna la vostra applicazione, si avanza il numero di versione in modo da poter rilevare un regalo "vecchio" DB.
Questo può essere utilizzato per attivare una routine di migrazione. Nel tuo caso avrebbe dovuto aggiungere nuova tabella al DB.
Altri suggerimenti
SQLiteOpenHelper è la risposta.