美文网首页
realm数据库开发(四)

realm数据库开发(四)

作者: 小歪子go | 来源:发表于2017-11-29 14:28 被阅读0次

    realm数据库的升级

    以前在使用sqlite数据库用于移动开发APP的开发的时候,当数据库表有新增的字段的时候,我常用的方法就是根据APP的版本新增补表的方式来解决此类问题,这样处理起来相当麻烦,往往要耗费好长时间,一直在寻求一个简单方便快捷的设局库升级额方法,在使用realm数据库的使用,使我的这一个想法变成了现实

    1、创建realm对象的时候,实现数据迁移的回调

    +(RLMRealm *)getCustomRealm{
        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        NSString *realmPath = [path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.realm",realmName]];
        RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
        config.fileURL = [NSURL fileURLWithPath:path];
        config.objectClasses = @[KKExamRLMModel.class,KKInquiryRLMModel.class];
        config.readOnly = NO;
        config.schemaVersion = realmVersion;
        config.migrationBlock = ^(RLMMigration *migration , uint64_t oldSchemaVersion) {       // 这里是设置数据迁移的block
            if (oldSchemaVersion < realmVersion) {
         //若需要对一些字段处理的话可以根据版本对比,对一些字段进行特殊处理
            }
        };
        [RLMRealmConfiguration setDefaultConfiguration:config];
        customRealm = [RLMRealm realmWithURL:[NSURL fileURLWithPath:realmPath]];
        return customRealm;
    }
    

    2、当表有新增字段的时候,改变数据库的版本realmVersion(设置成宏)

    define realmVersion  9 //当前数据库版本
    
    

    相关文章

      网友评论

          本文标题:realm数据库开发(四)

          本文链接:https://www.haomeiwen.com/subject/ccwubxtx.html