开发者社区> 问答> 正文

android 客户端跨版本升级的问题?报错

现在有这个问题,比方说,我发布android客户端1.0版本,然后陆续的发布了2.0,3.0,4.0版本。

每个版本发布的时候,都要修改本地的表结构,比如,2.0增加了

 db.execSQL("alter table Zuji add baby_name TEXT");

3.0版本增加了
  db.execSQL("alter table user add phone TEXT");

4.0版本增加了
  db.execSQL("alter table grow add is_del TEXT");

如果有人从1.0后,直接升级到4.0,版本,必然导致前2个版本的表结构执行不到。

但是,如果我每次升级的时候,如果修改表结构的sql都保留的话,那些每个版本都升级的客户端肯定会报错,请教大家有什么办法解决该问题哦?

 

展开
收起
爱吃鱼的程序员 2020-06-14 21:58:31 509 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该是这样

    if(oldVersion==2){"2到3升级代码",oldVersion++;}

    if(oldVersion==3){ "3到4升级代码" ,oldVersion++;}

    if(oldVersion==4){ "4到5升级代码" ,oldVersion++;}

    不要用else,这样 1.0版本,会一步一步升级。

    每个版本都有个数据库版本号,你在每次升级的时候都判断是否小于当前版本号,小于就做当前的升级。

    if(oldVersion<2){}

    if(oldVersion<3){}

    这样跳过版本,字段也升级了

    2020-06-14 21:58:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载