GreenDao数据库之——数据库的升级

GreenDao数据库升级:

其实就是对数据库的本身进行增删改,对数据库的表结构进行增删改的变化

思路

创建临时表TMP_,将原先表数据迁移过去
删除所有原表
创建新表
将TMP_表数据复制到新表,最后将TMP_表删除

先正常创建数据库,在对它进行更新操作
创建工具类:
其中:
generateTempTables(db, daoClasses);//生成临时列表
DaoMaster.dropAllTables(db, true);//返回false,会删除旧表
DaoMaster.createAllTables(db, false);//创建一个新的表
restoreData(db, daoClasses);//存储新的数据库表 以及数据

  private static final String CONVERSION_CLASS_NOT_FOUND_EXCEPTION = "MIGRATION HELPER - CLASS DOESN'T MATCH WITH THE CURRENT PARAMETERS";
private static MigrationHelper instance;   
 public static MigrationHelper getInstance() {
    if (instance == null) {
        instance = new MigrationHelper();
    }
    return instance;
}

    generateTempTables(db, daoClasses);//生成临时列表
    DaoMaster.dropAllTables(db, true);//返回false,会删除旧表
    DaoMaster.createAllTables(db, false);//创建一个新的表
    restoreData(db, daoClasses);//存储新的数据库表 以及数据
}

/**
 * 生成临时列表
 *
 * @param db
 * @param daoClasses
 */
private void generateTempTables(Database db, Class<? extends AbstractDao<?, ?>>... daoClasses) {
    for (int i = 0; i < daoClasses.length; i++) {
        DaoConfig daoConfig = new DaoConfig(db, daoClasses[i]);

        String divider = "";
        String tableNam
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值