Ответ 1
Я делаю что-то подобное. То, что я сделал, это установить версию базы данных, а затем, когда я проверяю, существует ли база данных, я также должен убедиться, что она правильная версия. Если это не так, я сохраняю избранное пользователя из базы данных, вытираю и восстанавливаю свой db, а затем оставляю пользовательские избранные.
Это мое обновление
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion == 2) {
System.out.println("Performing upgrade!");
openDataBase();
// save the old favorites
Cursor mCursor = getFavorites();
ArrayList<Stop> favs = allCursorToStops(mCursor);
mCursor.close();
deleteRecreate(db);
openDataBase();
for (int i = 0; i < favs.size(); i++)
setFavorite(favs.get(i));
close();
} else {
deleteRecreate(db);
}
}
Вот где я проверяю существование/если вам нужно обновить и т.д.
boolean dbExist = checkDataBase();
if(dbExist){
// check if we need to upgrade
openDataBase();
int cVersion = myDataBase.getVersion();
close();
if(cVersion != VERSION)
onUpgrade(myDataBase, myDataBase.getVersion(), VERSION);