尝试在 iOS 设备/模拟器上的新构建/安装上执行 Realm.open({schema: [Schema]})
时出现此错误。 Android 应用程序上一切正常,因为它以前从未通过迁移更改过 schemaVersions。
我对此错误的理解是设备上 Realm 文件的 schemaVersion 与 Realm.open({schema: [Schema]} 的默认
。我的另一个理论是,我的应用程序正在尝试在同一文件上现有打开的 Realm 配置期间打开 Realm 配置。 schemaVersion: 0
不同)
为了解决我的第一个理论,我一直在尝试使用 Realm.clearTestState()
和 Realm.deleteFile({schema: [Schema]})< 重置 Realm 文件
无济于事。对于第二个,我在 setTimeout()
中放置了并发 Realm.open()
实例,以便一次仅打开一个 Realm 实例。
是否有任何其他方法可以尝试重置 Realm 文件,以便设备上的 Realm 文件和配置都是相同的架构?
最佳答案
事实证明,我没有在每个实例中打开具有完全相同架构的 Realm 。这意味着我从 realm.js
文件中导出多个对象模式,并单独打开它们而不是作为一个整体打开它们,我认为这是正确的方法。
所以基本上,我正在这样做......
Realm.open({schema: [object1, object2, object3]})
Realm.open({schema: [object4, object5]})
当我应该这样做时:
const Schema = [object1, object2, object3, object4, object5];
Realm.open({schema: Schema});
希望这可以帮助其他遇到此问题的人,因为我访问过 Github 和 StackOverflow 上的所有其他类似错误报告,但没有遇到此提示。
关于realm - 错误: Realm at path '/var/.../default.realm' already opened on current thread with different schema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48603053/