从 Realm Studio 更改备份文件后恢复 Realm

Realm restore after altering backup file from Realm Studio

我正在构建一个使用 Realm 数据库的离线应用程序。我正在提供备份和恢复功能。它运行完美,而且 realm 在很短的时间内完成了快速同步。

我在领域上维护各种 table。目前,当我检查 realm studio 的数据,打开备份文件时,我发现很少有虚假数据发布到 table。因此,我更改了必要的数据并尝试恢复该文件。

这让我在恢复后出错,当我访问领域对象时,它说领域 table 不存在。

为什么会这样??? 是不是打开realm文件修改的时候还要做一些其他的操作什么的??

java.lang.IllegalArgumentException: The class 'LastTableIdsTable' doesn't exist in this Realm. (/Users/Nabil/Dev/realm/master/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp:244) at io.realm.internal.OsSharedRealm.nativeGetTable(Native Method) at io.realm.internal.OsSharedRealm.getTable(OsSharedRealm.java:309) at io.realm.RealmSchema.getTable(RealmSchema.java:187) at io.realm.RealmSchema.getSchemaForClass(RealmSchema.java:209) at io.realm.RealmQuery.(RealmQuery.java:145) at io.realm.RealmQuery.createQuery(RealmQuery.java:84) at io.realm.Realm.where(Realm.java:1332)

当我们尝试从 realm studio 编辑备份 realm 文件并恢复它时,我们需要确保所有 realm 都已关闭。我们需要通过调用 Realm.deleteRealm() 来删除旧领域,如果您设置了任何 RealmConfiguration,则传递配置。

还原完成后,在打开领域之前,您必须使用所需的配置初始化新领域。