首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测Realm.io db是否需要迁移如果需要,则销毁它。

检测Realm.io db是否需要迁移如果需要,则销毁它。
EN

Stack Overflow用户
提问于 2015-05-19 18:58:43
回答 3查看 2.4K关注 0票数 5

我使用领域缓存的时间不长,并且不需要随时更新模式版本或迁移到数据模型中。

因此,与其在数据模型发生变化时崩溃,我的应用程序如何聪明地处理这种差异,消除默认领域并从头开始呢?

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-18 18:14:52

自从斯威夫特2推出“尝试/捕捉”以来,我一直觉得这很有魅力。我只是在启动时从我的应用程序代表打电话给testRealmFile(),之后一切都很好。

代码语言:javascript
复制
func testRealmFile(){
    do {
        try Realm().objects(Model1)
        try Realm().objects(Model2)
    } catch {
        print("can't access realm, migration needed")
        deleteRealmFile()
    }
}
func deleteRealmFile(){
    if let path = Realm.Configuration.defaultConfiguration.path {
        do{
            try NSFileManager.defaultManager().removeItemAtPath(path)
            print("realm file deleted")
        } catch {
            print("no realm file to delete")
        }
    }
}
票数 4
EN

Stack Overflow用户

发布于 2017-01-04 19:54:12

领域配置对象现在有一个名为deleteRealmIfMigrationNeeded的属性(在目标C中也可用),如果设置为true,将自动删除需要迁移的领域数据库文件。

注意,如果您有兴趣在删除数据库文件之前检查是否需要迁移(例如,如果您希望在删除之前得到用户确认),您可能需要一些其他方法。

票数 1
EN

Stack Overflow用户

发布于 2015-05-20 04:24:34

最简单的方法是检查Realm.schemaVersionAtPath(_:)并查看该模式版本是否低于当前模式版本。您还可以遵循https://github.com/realm/realm-cocoa/issues/1692,它建议添加一个更精确的API (不需要颠簸模式版本),允许您检测是否需要迁移。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30333959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档