我知道升级方法是如何工作的,但在某些方面我感到困惑:
1)开始时,我的数据库版本是1,我的应用程序版本是1。
2)现在我把我的DB版本升级到了2,我的应用版本是2。
3)我想把DB升级到3,app升级到3。
问:从应用程序版本1升级到应用程序版本3的人会发生什么?他们会把DB升级到2,然后再升级到3吗?或者,我需要为此编写代码吗?我如何维护这样的标志?
发布于 2015-02-24 19:08:17
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; } }
发布于 2015-02-24 19:32:12
通常,当DB是增量升级时,您可以使用优雅的switch
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch( oldVersion ){
case 1:
migrateFrom1();
case 2:
migrateFrom2();
case 3:
migrateFrom3();
}
}注意,这里没有break语句。
https://stackoverflow.com/questions/28693750
复制相似问题