有条件地删除架构,而不是迁移

问题描述

领域有两种方法来处理模式更改:

  1. 运行迁移块,或者
  2. 删除架构

在我们的情况下,不需要选项2,因为我们有很多数据,我们的架构版本与内部版本号相关联,并且我们经常发布。

因此我们使用选项1。但是在某些情况下,如果旧模式版本太旧,则运行选项2而不是迁移会很方便。这可能吗?

用例1:我想重命名Object类,但是我不想冒险破坏迁移(这很容易做到)。对于在重命名之前从版本迁移的用户,删除架构是可以的,但我不想继续删除架构以进行后续迁移。

用例2:自2016年以来我一直在编写迁移(!),但是我只真正关心为定期更新的用户运行迁移(而不是删除架构)。因此,我想最多保留几个月的迁移时间,并只删除该版本之前升级的架构。

如果我想弄清楚如何在应用配置之前访问,然后弄清楚如何访问领域的旧模式版本,那么我可能会一起解决问题,但这似乎是Realm允许我查看模式的唯一空间版本位于迁移块中,并且似乎不可能在已经运行迁移时决定删除架构。

解决方法

这不能完全回答问题,但可能会导致更完整的解决方案。

如果您需要检索领域文件的架构版本,请按以下步骤操作(对于默认配置)

let x = try! schemaVersionAtURL(Realm.Configuration.defaultConfiguration.fileURL!)

以及API中Functions: schemaVersionAtURL(_:encryptionKey:)

下记录的内容

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...