Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())[4]

数据库版本升级对软件的管理操作。

我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新。

数据库版本更新需要主要的问题:

  软件的1.0版本升级到1.1版本时,老的数据不能丢。

  那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库。

  换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值。

当然有的时候我们对更新后的 版本并没有什么好感,还不如原来的版本用的顺手,那么我们就会对自己的软件进行降级操作。

接下来是对升降级数据库版本操作的一个分析。

  当系统在构造SQLiteOpenHelper类的对象时,如果发现版本号不一样,就会自动调用onUpgrade函数,让你在这里对数据库进行升级。

根据上述场景,在这个函数中把老版本数据库的相应表中增加字段,并给每条记录增加默认值即可。

新版本号和老版本号都会作为onUpgrade函数的参数传进来,便于开发者知道数据库应该从哪个版本升级到哪个版本。

升级完成后,数据库会自动存储最新的版本号为当前数据库版本号。 

v1.0 1.没有安装过 onCreate() -------------------------------------- v2.0 [onUpgrade 情况:n-1,onCreate 情况:1] 1.v1.0 --> v2.0 onUpgrade 2.没有安装过 onCreate() ----------------------------------------- v3.0 [onUpgrade 情况:n-1,onCreate 情况:1] 1. v1.0 -->v3.0 onUpgrade alter table t_message add column isdel bit default 0; 插入数据 * 2. v2.0 -->v3.0 onUpgrade alter table t_message add column isdel bit default 0; 3. 没有安装过 onCreate() 降级的设计关键点 1、考虑云端要保存用户【自定义数据、行为习惯】。专业术语profile-->>提高用户黏度 2、考虑[当前]的最低版本要求-->>降低维护成本 3、尽可能本地的数据转移(所有新版本,都不删除字段)-->尽可能把未知变已知 try catch

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpzpf.html