關於使用MigrationHelper爲GreenDao數據庫進行升級操作,數據遷移的方法。

MigrationHelper採用的是網上的源碼,地址 https://github.com/yuweiguocn/GreenDaoUpgradeHelper

該方法主要是通過創建臨時表,將舊錶的數據遷移到新表中。

使用步驟:

1、新建一個類繼承DaoMaster.DevOpenHelper,重寫onUpgrade(Database db, int oldVersion, int newVersion)方法,在該方法中使用MigrationHelper進行數據庫升級及數據遷。傳db對象,接口,最後可輸入一系列需要保存數據的表格實體類。

public class MigrationUpgradeHelper extends DaoMaster.OpenHelper {

    public MigrationUpgradeHelper(Context context, String name) {
        super(context, name);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {
            @Override
            public void onCreateAllTables(Database db, boolean ifNotExists) {
                DaoMaster.createAllTables(db, ifNotExists);
            }

            @Override
            public void onDropAllTables(Database db, boolean ifExists) {
                DaoMaster.dropAllTables(db, ifExists);
            }
        }, UserManagerBeanDao.class);
    }

}

然後使用MigrationUpgradeHelper替代DaoMaster.DevOpenHelper來進行創建數據庫等操作。

MigrationUpgradeHelper openHelper = new MigrationUpgradeHelper(this, "user");
Database db = openHelper.getWritableDb();
DaoMaster daoMaster = new DaoMaster(db);

第二步:

在實體類表中,調整其中的變量(表字段),一般就是新增、刪除、修改字段。

注意:新增字段或修改字段,其變量類型應使用基礎數據類型的包裝類,如使用Integer而不是int,避免升級過程中報錯。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章