Вопрос:

Как обновить базу данных Android Android без сбоев приложения

android database sqlite

10 просмотра

1 ответ

13 Репутация автора

Моя база данных в настоящее время находится в версии 1, однако у меня есть приложение в хранилище приложений, и я добавил столбец для своих новых обновлений, и я знаю, что мне нужно обновить мою базу данных, а когда я отправил свое приложение для обновлений, это приведет к сбою других приложений для пользователей , как я могу безопасно обновлять свою базу данных без сбоев приложения, я попытался запустить старую версию на своем телефоне и новое обновление с помощью этого кода после того, как я увеличил число, но он продолжает сбой без кода ошибки. Как я могу обновить свою базу данных, не повредив приложение, установленное другими пользователями в магазине приложений, безопасно?

private static final int DATABASE_VERSION = 2;

 @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // The database is still at version 1, so there's nothing to do be done here.

        // If you need to add a column
        if (newVersion > oldVersion) {
            db.execSQL("ALTER TABLE TABLE_NAME ADD COLUMN measure_json TEXT");
        }
    }
Автор: Anna Murray Источник Размещён: 06.11.2018 12:58

Ответы (1)


0 плюса

2704 Репутация автора

ONUpgrade ТОЛЬКО, если ваша версия базы данных увеличилась. Поэтому вам не нужно проверять, новее.

Таким образом, при обновлении базы данных у вас есть два варианта.

1) onUpgrade вызывает DROP TABLE и CREATE TABLE для нового запуска

2) Вы запускаете скрипты изменений в обратном вызове onUpgrade. Если вам нужно добавить столбец или переместить данные, обработайте их соответствующим образом. Другими словами, если вы добавляете поле, отличное от нуля, тогда вам нужно обновить все остальные поля. Или, если вы планируете перемещать данные, вы будете запрашивать его, формировать свои объекты, а затем вставлять в новую структуру.

Но из-за внешнего вида вы просто добавляете простой столбец. Поэтому вы должны быть в порядке, пока вы увеличиваете статический номер базы данных.

Автор: Sam Размещён: 06.11.2018 01:05
Вопросы из категории :
32x32