GreenDao 兼容升级,保留旧数据的---全方面解决方案,android界面开发实验报告

本文介绍了如何在Android应用中使用GreenDao进行数据库升级,同时确保旧数据不丢失。通过自定义升级策略,包括创建新表、迁移数据到中间表、删除旧表、创建新表以及恢复数据到新表,实现了兼容性升级。文章提供了一个名为`GreenDaoCompatibleUpdateHelper`的工具类,用于方便地执行升级操作,并包含了成功和失败的回调处理。
摘要由CSDN通过智能技术生成

/** WARNING: Drops all table on Upgrade! Use only during development. */
public static class DevOpenHelper extends OpenHelper {

@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
Log.i(“greenDAO”, “Upgrading schema from version " + oldVersion + " to " + newVersion + " by dropping all tables”);
dropAllTables(db, true); // 删除-----①
onCreate(db);
}
}

  • 凡是自动生成的代码文件,例如 xxxDao.java 类的,都会在每一次 build 的时候重新被生成,意味着个人的内嵌修改总是无效,因为总是覆盖你的。
  • 数据库的升级方式需求更多是需要往后兼容的,旧数据不能丢失

解决方案

自定义升级策略。 思路参考

在上面的基础上做出如下步骤总结: (看不懂的看下面的符号描述)

  • 创建之前旧表中不存在的新表
  • 创建中间表 & 把旧表的数据迁移到中间表
  • 把旧表全部删除
  • 创建所有新表
  • 把中间表的数据迁移到新表 & 删除中间表

对应上面的步骤描述:

  • A -> A + B
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值