如何解决有条件地删除架构,而不是迁移
领域有两种方法来处理模式更改:
- 运行迁移块,或者
- 删除架构
在我们的情况下,不需要选项2,因为我们有很多数据,我们的架构版本与内部版本号相关联,并且我们经常发布。
因此我们使用选项1。但是在某些情况下,如果旧模式版本太旧,则运行选项2而不是迁移会很方便。这可能吗?
用例1:我想重命名Object类,但是我不想冒险破坏迁移(这很容易做到)。对于在重命名之前从版本迁移的用户,删除架构是可以的,但我不想继续删除架构以进行后续迁移。
用例2:自2016年以来我一直在编写迁移(!),但是我只真正关心为定期更新的用户运行迁移(而不是删除架构)。因此,我想最多保留几个月的迁移时间,并只删除该版本之前升级的架构。
如果我想弄清楚如何在应用配置之前访问,然后弄清楚如何访问领域的旧模式版本,那么我可能会一起解决问题,但这似乎是Realm允许我查看模式的唯一空间版本位于迁移块中,并且似乎不可能在已经运行迁移时决定删除架构。
解决方法
这不能完全回答问题,但可能会导致更完整的解决方案。
如果您需要检索领域文件的架构版本,请按以下步骤操作(对于默认配置)
let x = try! schemaVersionAtURL(Realm.Configuration.defaultConfiguration.fileURL!)
下记录的内容
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。