我想升级我的Android应用程序的DATABASE,而不会丢失用户在特定表格中保存的数据(比如“收藏夹”表,我存储“食物”条目的_id)。
我只是简单地使用数据库的结构来保持此问题中的代码更短,无论如何我使用的是 SQLiteAssetHelper 和 ContentProvider
当我尝试升级DataBase时收到错误:
int i = 0;
int main(int argc, char *argv[]) {
...
这是我的DB Helper类
Caused by: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 1 to 2
}
假设我的数据库中有两个表:我要升级的“食物”表,以及“收藏”表我希望在用户保存时保留它。 这里的结构:
public class CookingDBHelper extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "cookingDB.db";
private static final int DATABASE_VERSION = 2;
public CookingDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
super.onUpgrade(db, oldVersion, newVersion);
}
)
您能告诉我如何在不丢失用户保存的收藏夹的情况下升级食物表吗?
答案 0 :(得分:-1)
在模拟器或电话中卸载您的应用程序,然后重新安装您的应用程序。我以这种方式认为您的问题将得到解决。