- restore data to (A+B) from (A’+B’) then drop (A’+B’)
代码简述
基于上面的二次修改和拓展
-
GreenDaoCompatibleUpdateHelper.java
顾名思义,兼容旧表性质的 greenDao 数据库升级,不会造成旧表的数据丢失 -
拓展了最终的成功和失败的回调
-
添加了错误日志的处理
-
解决了字段名称的冲突 bug,例如 delete 之类
-
MyGreenDaoDbHelper.java
自定义的 dbHelper,重载 onUpgrade
调用例子
if (oldVersion < newVersion) {
Log.e(“MyGreenDaoDbHelper”,“进行数据库升级”);
new GreenDaoCompatibleUpdateHelper()
.setCallBack(
new GreenDaoCompatibleUpdateHelper.GreenDaoCompatibleUpdateCallBack() {
@Override
public void onFinalSuccess() {
Log.e(“MyGreenDaoDbHelper”,“进行数据库升级 ===> 成功”);
}
@Override
public void onFailedLog(String errorMsg) {
Log.e(“MyGreenDaoDbHelper”,"升级失败日志 ===> "+errorMsg);
}
}
)
.compatibleUpdate(
db,
PostBeanDao.class,
MatterUserBeanDao.class,
PropsBeanDao.class,
ChannelChatsBeanDao.class,
JoinToChannelReqBeanDao.class
);
Log.e(“MyGreenDaoDbHelper”,“进行数据库升级–完成”);
}
GreenDaoCompatibleUpdateHelper
public final class GreenDaoCompatibleUpdateHelper {
public interface GreenDaoCompatibleUpdateCallBack{
void onFinalSuccess();
void onFailedLog(String errorMsg);
}
private st