美文网首页
Android——数据库的升级

Android——数据库的升级

作者: Lonelyice | 来源:发表于2019-06-27 10:24 被阅读0次

    在版本迭代时,我们经常需要对数据库进行升级,而GreenDAO默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。

    这在实际中是不可取的,因此我们需要作出调整。下面介绍数据库升级的步骤与要点

    1、复制MigrationHelper到项目,网上有不少MigrationHelper的源码,这里采用的是https://github.com/yuweiguocn/GreenDaoUpgradeHelper.中的MigrationHelper,它主要是通过创建一个临时表,将旧表的数据迁移到新表中。

    2、新建一个类,继承DaoMaster.DevOpenHelper,重写onUpgrade(Database db, int oldVersion, int newVersion)方法,在该方法中使用MigrationHelper进行数据库升级以及数据迁移。

    然后使用MyOpenHelper替代DaoMaster.DevOpenHelper来进行创建数据库等操作

    3、在表实体中,调整其中的变量(表字段),一般就是新增/删除/修改字段。注意:

    1)新增的字段或修改的字段,其变量类型应使用基础数据类型的包装类,如使用Integer而不是int,避免升级过程中报错。

    2)根据MigrationHelper中的代码,升级后,新增的字段和修改的字段,都会默认被赋予null值。

    4、将原本自动生成的构造方法以及getter/setter方法删除,重新Build—>Make Project进行生成。

    5、修改Module下build.gradle中数据库的版本号schemaVersion ,递增加1即可,最后运行app

    相关文章

      网友评论

          本文标题:Android——数据库的升级

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