领域架构迁移块未触发

问题描述

我在 iOS 和 SwiftUI 中使用 Realm 数据库。我向我的 Realm 对象架构之一添加一个新字段,我们称之为 Project。现在,当我执行 realm.objects(Project.self) 时,它抱怨我需要进行迁移。因此,根据 iOS migration doc,我将 schemaVersionmigrationBlock 添加到我的领域初始化代码中,如下所示。

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 (将#修改为@)