Удаляются ли базы данных при обновлении приложения? - PullRequest
1 голос
/ 27 октября 2010

Я добавил таблицу в базу данных, которую использует мое приложение, и написал некоторый код для работы с этой таблицей. У меня на телефоне и в эмуляторе все работало нормально, поэтому я отправил обновление в маркет.

Это заставляет меня получать довольно много следов стека в консоли разработчика, потому что

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

(флаг - новая таблица).

Меня удивило, удаляются ли базы данных при обновлении приложения? В настоящее время в моем приложении я проверяю, существует ли база данных, и если да, то я не воссоздаю ее.

Я не уловил этого до того, как отправил обновление, потому что я удалил приложение перед загрузкой отладочной версии.

С тех пор я выпустил быстрое обновление, в котором блоки try-catch блокируют все обращения к новой таблице (которые должны были быть в первую очередь, я знаю, я знаю).

Ответы [ 2 ]

4 голосов
/ 27 октября 2010

Данные пользователя не удаляются, включая базы данных.

Ваша БД имеет номер версии. Когда вы обновляете свое приложение, вы повышаете номер версии, чтобы вы могли обнаружить существующую «старую» БД.

Это можно использовать для запуска процедуры миграции. В вашем случае он должен был добавить новую таблицу в БД.

0 голосов
/ 24 января 2011

SQLiteOpenHelper является ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...