Android GreenDao 3.3.0 數(shù)據(jù)庫(kù)升級(jí) (三)

入門: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
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容