入門:http://www.itdecent.cn/p/adfe318fd96d
關(guān)聯(lián)表:http://www.itdecent.cn/p/6e3f0592f028
開發(fā)過(guò)程中難免遇到需要擴(kuò)充數(shù)據(jù)庫(kù)的情況,這時(shí)就需要進(jìn)行數(shù)據(jù)庫(kù)升級(jí)的配置
首先在DbManager中做一下修改
val devOpenHelper = DaoMaster.DevOpenHelper(context, "xxx.db", null)
這里我們不再使用DaoMaster.DevOpenHelper,而是使用我們自定義的類:
val devOpenHelper = MyOpenHelper(context, "xxx.db", null)
MyOpenHelper的實(shí)現(xiàn)如下:
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)
...
}
}
這里關(guān)注的重點(diǎn)就是onUpgrade方法,我們升級(jí)數(shù)據(jù)庫(kù)的邏輯就在此處。
簡(jiǎn)單的思路如下:
override fun onUpgrade(db: Database, oldVersion: Int, newVersion: Int) {
super.onUpgrade(db, oldVersion, newVersion)
//在這里拿之前的信息
db xxxxx
//移除全部數(shù)據(jù)庫(kù)
DaoMaster.dropAllTables(db, true)
//創(chuàng)建新庫(kù)
onCreate(db)
//在這里將信息放入新庫(kù)
insert xxxxx
}