【发布时间】:2014-09-21 06:10:26
【问题描述】:
很明显,这个问题之前已经被问过,但是尽管看了几个回答,我还是有点不确定。 onUpgrade() 方法的docs 也没有真正的帮助。
onUpgrade() 是否针对每个版本增量运行(即,从 db_v1 到 db_v3 onUpgrade() 对 1->2 运行一次,然后对 2->3 再次运行),还是只运行一次(即,从 db_v1 到 db_v3 onUpgrade() 运行一次 1->3);
我的假设是它只被调用一次。在这种情况下,这样的事情可以正常工作吗?
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {
case 0:
migrateDatabaseToVersion_1(db);
migrateDatabaseToVersion_2(db);
migrateDatabaseToVersion_3(db);
break;
case 1:
migrateDatabaseToVersion_2(db);
migrateDatabaseToVersion_3(db);
break;
case 2:
migrateDatabaseToVersion_3(db);
break;
default:
Log.d(LOG, "no database migrations necessary");
break;
}
}
我看到回复here 类似的建议,但使用 if 语句而不是 switch。任何帮助深表感谢。提前谢谢你。
【问题讨论】:
标签: android sqlite upgrade database-migration