ios - 未触发领域模式迁移块
问题描述
我在 iOS 和 SwiftUI 中使用 Realm 数据库。我在我的 Realm 对象模式之一中添加了一个新字段,我们称之为Project
. 现在,当我这样做realm.objects(Project.self)
时,抱怨我需要进行迁移。因此,根据iOS 迁移文档,我在我的领域初始化代码中添加了一个schemaVersion
和migrationBlock
,如下所示。
config.schemaVersion = 1 // Older version was 0
config.migrationBlock = { migration, oldSchemaVersion in
logger.debug("Performing migration since old schema \(oldSchemaVersion) is behind current schema \(currentSchemaVersion) ...")
if oldSchemaVersion < 1 {
migration.enumerateObjects(ofType: Project.className()) { (old, new) in
new!["isDeleted"] = false
}
})
}
我在打开 Realm 之前打印了配置,我可以看到配置设置了迁移块字段。
...
schemaVersion = 1;
migrationBlock = <__NSMallocBlock__: 0x600001537ed0>;
...
Realm.asyncOpen(configuration: config)
在尝试以and方式打开 Realm 后,我再次打印了 Realm 配置Realm(configuration: config)
,但缺少迁移块。
...
schemaVersion = 1;
migrationBlock = (null);
...
我的迁移块没有被触发,我怀疑我错过了一些东西!提前感谢您在正确方向上的任何帮助。
我尝试过的一些解决方案:
根据一些 Stack Overflow 帖子,我还尝试使用更大的架构版本(具体为 2、5、10)。另外,我在初始化时初始化我的主要领域(它Project.self
是其中的一部分)SwiftUI.App
。
解决方案
推荐阅读
- sap - 如何将 SUBSELECT 与 JOIN 一起使用?
- css - 移动网站版本被缩放和裁剪
- swift - Swift 中的 Coinbase 身份验证签名
- java - 调试时Eclipse中的“找不到源”错误
- swift - 如何知道 fetchProviders() 何时完成执行?
- ruby-on-rails - 如何在 Heroku 中查看详细的 Rails 日志?
- regex - 仅调整具有特定图案的图像大小
- reactjs - React Native - 注销后登录屏幕加载两次
- javascript - 将键从另一个对象合并到嵌套对象中
- salesforce - Lightning - 选项列表标签的千位逗号分隔符