在数据库版本升级时, 我们可能会遇到这样一些情况:
- 需要扩展一个表的字段
- 删除掉原来表上某个冗余的字段
- 新建一个表
而处理上面这些问题都要在不损害旧数据库历史数据的前提下完成。
首先,我们都知道,当我们的数据库版本号从低版本到高版本的升级之后,会调用SQLiteOpenHelper中的
onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion)
方法。这时我们就可以在这里去处理这些升级逻辑。
扩展一个表的字段在onUpgrade中的实现为:
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
//数据库表最后面添加一个字段
if(oldVersion < newVersion){
sqLiteDatabase.execSQL("ALTER TABLE ShoppingCar ADD CO