Обновление SQLite после обновления приложения для Android - PullRequest
0 голосов
/ 05 августа 2011

У меня есть приложение, выпущенное на рынке Android, которое использует sqlite и отображает данные.Я хочу знать, отправляю ли я обновление для приложения с добавлением функций, должен ли я загрузить новую базу данных?Что происходит, когда пользователи, уже имеющие мое приложение, нажимают на обновление?Обновится ли база данных самостоятельно?Если пользователи загружают мое приложение в первый раз, они, безусловно, получат новый контент БД ... но как насчет существующих пользователей ??Я хочу знать, нужно ли мне явно обновлять базу данных в программе

Ответы [ 4 ]

0 голосов
/ 05 августа 2011

Когда вы создаете новую версию ... Если вы изменяете версию базы данных ... Функция onUpgrade будет работать для всех существующих пользователей:

public static final int dbVersion = 2;
protected static class DatabaseHelper extends SQLiteOpenHelper { 
    public DatabaseHelper(Context context) {
        super(context, dbName, null, dbVersion);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //create tables
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //what do you want to do to existing users? maybe recreate?
    }
}
0 голосов
/ 05 августа 2011

Если вы изменяете атрибуты базы данных, то при обновлении это создаст проблему, а если атрибуты базы данных будут такими же, это не будет иметь никакого эффекта ...

0 голосов
/ 05 августа 2011

Вы можете использовать android.database.sqlite.SQLiteOpenHelper класс, который поддерживает версии и механизм миграции

0 голосов
/ 05 августа 2011

Почему бы не создать базу данных sqlite с помощью кода? Таким образом, ваши обновления могут обновлять SQL в базе данных (изменять столбцы, добавлять строки), не затрагивая существующие данные пользователей.

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