如果数据库版本相同,是否可以将onUpgrade()方法留空?

时间:2018-10-21 19:13:05

标签: android sqlite

我制作了一个使用sqlite数据库的应用程序,并且DbHelper类中的数据库版本为1。此外,在build.gradle中,应用程序版本为1。假设我发布了该应用程序,现在我想用该应用程序的版本2更新该应用程序。首先,我是否也应该增加数据库版本?即使数据库结构未更改,它是否也是强制性的?如果这是强制性的,那很好。我已经对数据库升级进行了一些搜索,并将从那里获得帮助。但是,如果不是强制性的,那么我可以将onUpgrade()方法留空吗?

要清楚;

版本代码1(build.gradle)

private static final int DATABASE_VERSION = 1
...

    @override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
            //empty
    }     

版本代码2(build.gradle)

private static final int DATABASE_VERSION = 1; //if this is fine
...

@override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
        //what should I do here?
    }

1 个答案:

答案 0 :(得分:1)

  

即使未更改数据库结构,这是否也是强制性的?

不。仅在更改架构(例如,添加列,添加表,删除表)时增加数据库架构的版本。

  

但是如果不是强制性的,那么我可以将onUpgrade()方法留空吗?

是的,尽管您可能考虑在调试版本中抛出IllegalStateException

if (BuildConfig.IS_DEBUG) {
  throw new IllegalStateException("Not yet implemented");
}

这样,在开发和测试中,如果您增加模式版本,就不会忘记onUpgrade()