2016-12-28 3 views
1

Я публикую приложение для Android в магазине приложений. Через некоторое время я делаю некоторые изменения в базе данных и перехожу к следующей версии. Моя проблема заключается в изменениях и изменениях в базе данных только по содержанию, и в нее не добавляются ни столбцы, ни столбцы. поэтому схема является палкой и содержимое изменяется. Должен ли я звонить наUgrade? Не следует ли изменять версию базы данных?android - обновление только содержимого базы данных

ответ

1

Если вы используете SqliteAssetHelper, Вы можете сделать, как document говорит:

Обновление через перезапись

Если у вас есть база данных только для чтения или не заботятся о потере пользовательских данных, вы можете принудительно пользователей в последнюю версию базы данных SQLite каждый раз, когда номер версии увеличивается (переписывая локальную базу данных с той, что находится в активах), вызывая метод setForcedUpgrade() в вашем конструкторе подкласса SQLiteAsstHelper.

Вы можете дополнительно передать аргумент, который является номером версии, ниже которого будет выполнено принудительное обновление.

Обратите внимание, что это перезапишет существующую локальную базу данных и все данные в ней.

1
void onUpgrade (SQLiteDatabase db, 
       int oldVersion, 
       int newVersion) 

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

Я хотел бы предложить не увеличивать версию базы данных, тогда не нужно вызывать методы DB onUpgrade. Если в схеме были изменены, вам нужно будет вызвать onUpgrade(). Также обновите версию базы данных.

Смежные вопросы