美文网首页
greendao的数据库升级<5>

greendao的数据库升级<5>

作者: 天空在微笑 | 来源:发表于2017-11-22 22:02 被阅读11次
数据库升级的意义:

如果我们再项目中使用了数据库。而数据库的结构在第一版的时候定下来,之后发布功能更新,或增加业务逻辑,原来的数据库结构可能就不适用了。而如果数据库的结构与之前版本的结构不同,新版本的应用读取旧数据库肯定会出问题。解决办法只有两种:
1.让用户卸载老版本再安装新的程序;
2.软件自行更新数据库结构。
第一种办法很明显不具备可操作性,而且用户一旦卸载软件,数据就丢失了,这是不能容忍的事情。因此,作为开发者必须妥善处理数据库的升级问题。

  • 修改gradle文件

首先在module的gradle文件中修改版本号:

//改为最新的版本号  
schemaVersion 2

如果只是做了上面的步骤则会默认清除所有数据,一看源码便知,当检测到version变化的时候便执行dropAllTables()操作,再重新建库

    /** WARNING: Drops all table on Upgrade! Use only during development. */
    public static class DevOpenHelper extends OpenHelper {
        public DevOpenHelper(Context context, String name) {
            super(context, name);
        }

        public DevOpenHelper(Context context, String name, CursorFactory factory) {
            super(context, name, factory);
        }

        @Override
        public void onUpgrade(Database db, int oldVersion, int newVersion) {
            Log.i("greenDAO", "Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables");
            dropAllTables(db, true);
            onCreate(db);
        }
    }

数据迁移的核心思想:
1 把旧表改为临时表
2 建立新表
3 临时表数据写入新表,删除临时表

站在巨人的肩膀上,这里直接使用了开源的库,配合greenDAO来做数据迁移,亲测稳定:
GreenDaoUpgradeHelper

schemaVersion 版本加1,User类新增属性:major

不做迁移处理前,重新安装后数据库已经被重置,数据为空。迁移配置后,旧表数据已经被存到新表中,major字段为null;

greenDAO3 入门(配置,基本操作,数据库升级)
Android GreenDao使用详解——(下)数据库升级

相关文章

  • greendao的数据库升级<5>

    数据库升级的意义: 如果我们再项目中使用了数据库。而数据库的结构在第一版的时候定下来,之后发布功能更新,或增加业务...

  • GreenDao简单使用和数据库升级

    一 GreenDao的配置 学习/参考地址:GreenDao3.0数据库的简单使用GreenDAO数据库升级 1、...

  • android GreenDao

    Android框架之路——GreenDao3.2.2的使用 - CSDN博客 GreenDAO 完美解决数据库升级...

  • GreenDao数据库升级问题

    前面博客中有介绍轻量级的数据库GreenDao的整合。本文介绍如何对GreenDao数据库进行升级。 为什么要进行...

  • 2019-06-05 数据库升级

    数据库升级 在实际开发当中,我们经常要对数据库进行升级,但GreenDAO默认的DaoMaster.DevOpen...

  • GreenDao数据库升级

    GreenDao数据库升级 第1步:升级数据库版本号 第2步:修改数据库实体类 第3步:迁移数据库 注:数据库升级...

  • 数据库操作能力 -- GreenDao -- 2

    七、数据库的升级 GreenDao的OpenHelper下有个onUpgrade(Database db, int...

  • GreenDao 使用过程中遇到的问题

    最近开发app的时候由于会用到数据库所以采用了开源库GreenDao,于是开启了采坑之旅 1、greendao升级...

  • Android十八章:是时候在你项目用上greenDAO3

    GreenDao GreenDao3.1.0使用案例包含(增删查改,升级数据库),3.+版本比2.+更加便捷生成D...

  • GreenDao3数据库升级

    在App更新的过程中,不免需要升级数据库,重建或修改表结构,但是GreenDao并没有提供相应的数据库升级方法,观...

网友评论

      本文标题:greendao的数据库升级<5>

      本文链接:https://www.haomeiwen.com/subject/cbtavxtx.html