Подтвердить что ты не робот

Обновление базы данных Android Android и приложений

Я разработал приложение для Android и выпустил версию 1.0. Приложение содержит локальную базу данных SQLite с 5 таблицами.

Теперь мы планировали выпустить версию 2.0, также обновляя пользователей версии 1.0. В версии 2.0 мы включили дополнительные две таблицы с предыдущей 5 таблицей, а теперь 7 таблиц.

Теперь мой вопрос: у пользователей версии 1.0 есть некоторые данные в локальной базе данных. Если он обновится до версии 2.0, предыдущие данные будут потеряны? Если это так. то какой альтернативный метод?

4b9b3361

Ответ 1

Вы должны поместить все изменения в свой метод onUpgrade, который вы можете использовать для этого кода:

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    String sql = "ALTER TABLE " + TABLE_SECRET + " ADD COLUMN " +
     "name_of_column_to_be_added" + " INTEGER";
    db.execSQL(sql);        
}        

это добавляет столбец в вашу текущую базу данных. Ваша база данных не потеряет данные. Напоминание: onUpgrade вызывается, когда выполняется getWriteableDatabase или getReadableDatabase И версия вашей базы данных отличается от вашей старой версии.

Ответ 2

Измените свою версию db и добавьте дополнительные два метода создания таблицы в свой метод onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion). Теперь предыдущие данные не будут потеряны.

Надеюсь, это поможет вам.

Ответ 3

Вы можете сделать некоторые из SQLiteOpenHelper#onUpgrade, получить некоторые старые данные. и вставить в новую таблицу