在Android中升级数据库

时间:2015-02-24 10:48:43

标签: android sqlite

我知道升级方法是如何工作的,我在某些方面感到困惑:

1)一开始我的数据库版本是1我的应用版本是1.

2)现在我将我的数据库版本升级到2,我的应用版本为2.

3)我想将DB升级到3,将app升级到3.

问题:从应用版本1升级到应用版本3的用户会发生什么?他们会将DB升级到2然后升级到3吗?或者我需要为此编写代码吗?我该如何保留这些旗帜?

2 个答案:

答案 0 :(得分:2)

好吧,SQLiteOpenHelper.onUpgrade将像往常一样调用,最简单的处理方法是让升级代码逐步处理每个版本;从版本1 - > 2 - > 3等。例如:

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { if (oldVersion == 1) { // upgrade db to version 2 oldVersion = 2; } if (oldVersion == 2) { // upgrade db to version 3 oldVersion = 3; } }

答案 1 :(得分:0)

通常,当数据库升级是增量式时,您可以使用优雅的switch

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  switch( oldVersion ){
    case 1:
      migrateFrom1();
    case 2:
      migrateFrom2();
    case 3:
      migrateFrom3();
  }
}

注意缺少break陈述。