升级 app 的版本时,我们有时候希望可以把原数据库中的资料也保留下来,那么这个时候我们就需要用到数据库的升级。 在 android 中 SQLiteOpenHelper 中定义了 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 函数来进行一些对数据库的升级操
升级app的版本时,我们有时候希望可以把原数据库中的资料也保留下来,那么这个时候我们就需要用到数据库的升级。
在android中SQLiteOpenHelper中定义了onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)函数来进行一些对数据库的升级操作处理。不需要做一些数据库的操作,在这个函数不需要写任何代码。
在编写数据库升级的时候,我们除了要把数据库的版本号+1以外,还需要在onUpgrade()中写升级数据库所发生的一些变化。比如,数据库升级会发生一些表结构的变化或者是数据的变化。我在这里先说一下,更新表的一些步骤:
1. 先把原表改名,可以任意名字,但是为了方便,我们加temp前缀或者后缀。
2. 然后创建新的表,我们实际要用到升级版本的表。
3. 把原表的数据按照新表的规定,插入到新表中。
4. 把原表删除。
这里会有个小问题,如果原表不需要发生变化要怎么办?那就不需要去动这个表了。参考源码见:https://github.com/arjinmc/UpgradeDatabaseDemo