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).

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top