Realm将Pod降级到以前的版本(Swift)

时间:2020-07-02 04:30:47

标签: ios swift realm realm-mobile-platform realm-migration

在我们的项目中,我们已将Realm pod升级为5.0.3版本。我们已经开始观察生产应用程序中的随机崩溃,这在Realm版本4.3.2中不存在。因此,为了快速修复,我们决定再次将pod降级到4.3.2。

降级后,Realm给出迁移错误并出现以下错误

无法在路径'/ Users / Library / Developer / CoreSimulator / Devices / B18C551E-DC35-417B-BBA4-123865FEA7A1 / data / Containers / Data / Application / 8E9F1938-47D2-415F-97C0打开领域-BDF933F0E964 / Documents / default.realm':不支持的Realm文件格式版本(10)路径:异常回溯:

我们已经更新了Realm配置的迁移ID,但仍然遇到问题。

我们希望在不重新安装应用程序的情况下将Realm版本降级为4.3.2版本,以便生产用户不会遇到任何问题。

任何帮助将不胜感激。

版本更新后在领域上报告了一些问题

  1. https://github.com/realm/realm-cocoa/issues/6559
  2. https://github.com/realm/realm-cocoa/issues/6574
  3. https://github.com/realm/realm-cocoa/issues/6577

2 个答案:

答案 0 :(得分:0)

随着Realm的发展,.realm文件的文件格式会定期更改为使用旧版本Realm创建的.realm文件需要在内部迁移到新文件格式规范的程度。第一次在代码中创建Realm实例时,会自动发生这种情况。

这与schemaVersion对象中的Realm.Configuration属性不同,它是Realm的内部实现细节,外部用户无法访问。

不幸的是,据我所知,这种文件格式迁移仅以一种方式发生。因此,如果用户的.realm文件已升级为这种新格式,但是您降级了Realm的框架版本,则该文件无法迁移回旧格式。

我强烈建议您尝试解决在5.0.3。上发生的崩溃。

但是,如果您希望保留在4.3.2上,解决此问题的唯一方法是测试该异常,如果发生了(例如,用户已经升级了文件),则可以使用{{1 }}从磁盘上物理删除数据库文件并从头开始。

答案 1 :(得分:0)

收到了Realm的回复,因此无法解决该问题,因为v4 *无法降级。

使用v5.0.0及更高版本创建的领域文件与低于v5的版本不兼容。