GreenDao數據庫升級不清除數據

GreenDao數據庫升級不清除數據:

需要的引入:

implementation 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v1.4.0'

數據庫初始化升級一定要在使用數據庫之前進行,避免字段修改造成 查詢數據庫出錯,引起程序崩潰

public static final int CURRENT_DATABASE_CODE = 15;//數據庫版本
//數據庫
        MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "databaseName", null);
        DaoSession mDaoSession= new DaoMaster(helper.getWritableDb()).newSession();

//獲取舊版本
        int oldDataBaseCode = SPUtils.init().getInt("old_database_version", CURRENT_DATABASE_CODE);
// 數據庫升級
        helper.onUpgrade(helper.getWritableDb(), oldDataBaseCode, CURRENT_DATABASE_CODE);
        SPUtils.init().putInt("old_database_version", CURRENT_DATABASE_CODE);

 

 

 

public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {
    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }

    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        switch (oldVersion) {
            case 0:
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
                MigrationHelper.migrate(db, Bean1Dao.class);// 6版本後對Bean1Dao 數據進行升級
            case 7:
            case 8:
            case 9:
            case 10:
                MigrationHelper.migrate(db, BeanNewDao.class);// 10版本後對BeanNewDao數據進行升級
            case 11:
                MigrationHelper.migrate(db, Bean3Dao.class);// 11版本後對Bean3Dao數據進行升級
            case 12:
                MigrationHelper.migrate(db, Bean4Dao.class);
            case 13:
                MigrationHelper.migrate(db, BeanDao.class);
                MigrationHelper.migrate(db, BeanDao.class);
            case 14:
                MigrationHelper.migrate(db, BeanDao.class);
                MigrationHelper.migrate(db, BeanDao.class);
            default:
                break;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章