问题描述
我在 iOS 和 SwiftUI 中使用 Realm 数据库。我向我的 Realm 对象架构之一添加了一个新字段,我们称之为 Project
。现在,当我执行 realm.objects(Project.self)
时,它抱怨我需要进行迁移。因此,根据 iOS migration doc,我将 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)
和 Realm(configuration: config)
打开 Realm 后,我再次打印了 Realm 配置,但缺少迁移块。
...
schemaVersion = 1;
migrationBlock = (null);
...
我的迁移块没有被触发,我怀疑我遗漏了什么!预先感谢您在正确方向上提供的任何帮助。
我尝试过的一些解决方案:
根据 Stack Overflow 的一些帖子,我还尝试使用更大的架构版本(具体是 2、5、10)。此外,当 Project.self
初始化时,我会初始化我的主要领域(SwiftUI.App
是其中的一部分)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)