Greendao数据库升级
1、新建 GDOpenHelper 类
public class GDOpenHelper extends DaoMaster.OpenHelper{
public GDOpenHelper(Context context, String name) {
super(context, name);
}
@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
//把需要管理的数据库表DAO作为最后一个参数传入到方法中
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);
}
}, TestDao.class);
}
}
2、替换原有greendao数据创表语句
a:原有代码
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "test-db" , null);
SQLiteDatabase database = helper.getWritableDatabase();
mDaoSession = new DaoMaster(database).newSession();
b:更换后代码
GDOpenHelper gdOpenHelper = new GDOpenHelper(context, "sq-db");//建库 mDaoSession = new DaoMaster(gdOpenHelper.getWritableDatabase()).newSession();
3、数据升级时,使用国外大神写的库,如下。
implementation 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.1.0'
本文详细介绍Greendao数据库升级的步骤,包括自定义OpenHelper类实现数据库版本迁移,以及使用第三方库简化升级流程。适用于需要更新数据库结构的移动应用开发者。

775

被折叠的 条评论
为什么被折叠?



