Playstore上的Android App本地数据库更新

时间:2016-09-03 20:16:59

标签: android sqlite

我发布了一个Android应用程序,其中包含 versionCode = 1和DATABASE VERSION = 1 的本地 Sqlite 数据库,其中有两个表格,假设 TABLE1 TABLE2 即可。
如果我想再添加一个表 TABLE3 ,那么我将在 onUpgrade()方法中编写表创建代码,并将发布我的App 使用 versionCode = 2和DATABASE VERSION = 2 ,用户将从Play商店获取更新。
如果我想为 versionCode = 3和DATABASE VERSION = 3 添加 TABLE4 ,我sholuld在onUpgrade()方法中编写代码但是我应该删除表创建代码 对于 TABLE3 ,如果没有,它会给出

  

表已存在错误

TABLE3 当用户将应用更新为版本= 3 时?

2 个答案:

答案 0 :(得分:0)

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法提供旧版本号,因此您只需检查它是哪个版本。例如,如果oldVersion等于1,则还必须添加TABLE3和TABLE4,但如果它等于2,则只需要TABLE4。管理它的最简单方法可能是这样的:

public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
    if (oldVersion < 2) {
        // create TABLE3
    }

    if (oldVersion < 3) {
        // create TABLE4
    }
}

TL; DR:你不应该删除TABLE3创建部分,因为如果用户没有在版本1和3之间安装升级,他/她就不会添加该表,你的应用可能会在某些时候崩溃。

答案 1 :(得分:0)

onUpgrade()应该将数据库从任何版本升级到当前版本。您还应该修改onCreate()以创建当前版本中所需的所有表。