Android GreenDao 3.3.0 数据库升级 (三)

入门:https://www.jianshu.com/p/adfe318fd96d
关联表:https://www.jianshu.com/p/6e3f0592f028

开发过程中难免遇到需要扩充数据库的情况,这时就需要进行数据库升级的配置


首先在DbManager中做一下修改

val devOpenHelper = DaoMaster.DevOpenHelper(context, "xxx.db", null)

这里我们不再使用DaoMaster.DevOpenHelper,而是使用我们自定义的类:

val devOpenHelper = MyOpenHelper(context, "xxx.db", null)


MyOpenHelper的实现如下:

class MyOpenHelper(context: Context, name: String, factory: CursorFactory?) :
    DaoMaster.DevOpenHelper(context, name, factory) {

    override fun onUpgrade(db: Database?, oldVersion: Int, newVersion: Int) {
        super.onUpgrade(db, oldVersion, newVersion)

        ...
    }
}

这里关注的重点就是onUpgrade方法,我们升级数据库的逻辑就在此处。



简单的思路如下:


    override fun onUpgrade(db: Database, oldVersion: Int, newVersion: Int) {
        super.onUpgrade(db, oldVersion, newVersion)

        //在这里拿之前的信息
        db xxxxx

        //移除全部数据库
        DaoMaster.dropAllTables(db, true)

        //创建新库
        onCreate(db)

        //在这里将信息放入新库
        insert xxxxx
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。