2013-05-10 1 views
0

У меня есть база данных в моем приложении, которая создается путем простого копирования файла базы данных SQLite из папки с данными, но теперь в следующей версии я хочу обновить базу данных, не теряя прежние данные.Обновление базы данных SQLite, созданной Assets DB

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

Благодаря

ответ

0

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

1
  1. Используйте этот gist
  2. В методе OnUpgrade, скопируйте ваши предыдущие данные из старой базы данных.
  3. В методе doUpgrade используйте ваши скопированные данные для обновления новой базы данных.
+0

Но здесь он будет копировать базу данных только из Активы, и если бы я использовал это, то мой db будет на начальной стадии. Я хочу сохранить данные также в недавно скопированной базе данных. –

+0

1. old_db находится у пользователя. 2. в обновленной версии отправьте файл new_db в папку с ресурсами. 3. пользователь обновляет свою прежнюю версию. 4. начинается новая версия. 5. В методе OnUpgrade прочитайте предыдущие данные из old_db. 6. в doUpgrade, напишите свои предыдущие данные new_db. Итак, в конце, это ваш новый_db, который используется, но загружается с данными из old_db – kdehairy