Обновление базы данных Android Android и приложений
Я разработал приложение для Android и выпустил версию 1.0. Приложение содержит локальную базу данных SQLite с 5 таблицами.
Теперь мы планировали выпустить версию 2.0, также обновляя пользователей версии 1.0. В версии 2.0 мы включили дополнительные две таблицы с предыдущей 5 таблицей, а теперь 7 таблиц.
Теперь мой вопрос: у пользователей версии 1.0 есть некоторые данные в локальной базе данных. Если он обновится до версии 2.0, предыдущие данные будут потеряны? Если это так. то какой альтернативный метод?
Ответы
Ответ 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
, получить некоторые старые данные. и вставить в новую таблицу