Intereting Posts
Добавление ресурса с использованием Кордовы Android: Планирование перезапуска аварийной службы с большой задержкой? Javax.net.ssl.SSLException: имя хоста в сертификате не соответствует андроиду Мониторинг ошибок с помощью Sentry – Android Parse SDK Android – Facebook Graph API v2.0 Как создать кнопку плавающего действия (FAB) в android, используя AppCompat v21? Количество активных потоков продолжает увеличиваться BaseLayerAndroid, создающий разрушающие сообщения журнала Как переместить влево ArrayList Как создать четкое фоновое изображение для виджета Android 1×1? Сбой при возврате фрагмента в виде вкладки. Просмотр с тем же идентификатором Визуальная студия / apache cordova – сборка выполнена успешно – но не создается apk Как изменить высоту мягкой клавиатуры во время выполнения? Попытка сохранить изображение в папке с определенными папками, которая не была создана Android забирает весь список контактов (имя, адрес электронной почты, телефон) занимает более минуты около 700 контактов

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

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

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

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

Вы должны поместить все изменения в свой метод 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 И версия вашей базы данных отличается от вашей старой версии.

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

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

Я надеюсь, что это поможет вам.