2010-10-27 2 views
1

J'ai ajouté une table à une base de données que mon application utilise et j'ai écrit du code pour travailler avec cette table. Tout a bien fonctionné pour mon sur mon téléphone et dans l'émulateur, j'ai donc envoyé la mise à jour sur le marché.Les bases de données sont-elles supprimées lorsqu'une application est mise à jour?

Cela me causer de recevoir pas mal de traces de pile dans la cause développeurs console par

android.database.sqlite.SQLiteException: no such table: flag 

(drapeau est la nouvelle table).

Cela m'a amené à me demander, les bases de données sont supprimées lorsque l'application est mise à jour? Actuellement, dans ma demande, je cherche à voir si la base de données existe, et si c'est le cas, je ne la recréerai pas.

Je n'ai pas remarqué cela avant d'envoyer la mise à jour car j'ai désinstallé l'application avant de télécharger la version de débogage.

J'ai depuis déployé une mise à jour rapide qui a un try attraper des blocs autour de tous les accès à la nouvelle table (qui aurait dû être là en premier lieu, je sais, je sais).

Répondre

4

Les données de l'utilisateur ne sont pas supprimées, y compris les bases de données.

Votre base de données possède un numéro de version. Lorsque vous mettez à jour votre application, vous avancez le numéro de version afin de pouvoir détecter un "ancien" DB existant.

Ceci peut être utilisé pour déclencher une routine de migration. Dans votre cas, il aurait fallu ajouter une nouvelle table à la base de données.

Questions connexes