入门: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
}