在Android应用程序中升级DATABASE

时间:2016-05-20 12:55:58

标签: android database

我想升级我的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);

}

您能告诉我如何在不丢失用户保存的收藏夹的情况下升级食物表吗?

1 个答案:

答案 0 :(得分:-1)

在模拟器或电话中卸载您的应用程序,然后重新安装您的应用程序。我以这种方式认为您的问题将得到解决。