React native 处理删除/重命名领域模型的建议方法

React native 处理删除/重命名领域模型的建议方法,react-native,realm,React Native,Realm,我正在使用realm和我当前正在使用的react本机应用程序。我现在面临的问题是,我需要重命名或删除旧模型,并将数据迁移到新模型 创建新模型后,一切都很好,但当我查看Realm Browser以查看新数据时,仍然可以看到旧模型的数据。 在插入新数据之前,我尝试了删除领域中的所有数据,但它似乎并没有删除旧模型中的数据 例如,该应用程序以前有一个型号名称Car,但现在我想更具体地说明Truck和Sedan,等等。因此我创建了新型号,删除了旧型号Car,但在发布后我仍然可以看到Car的数据 我想知道是

我正在使用realm和我当前正在使用的react本机应用程序。我现在面临的问题是,我需要重命名或删除旧模型,并将数据迁移到新模型

创建新模型后,一切都很好,但当我查看Realm Browser以查看新数据时,仍然可以看到旧模型的数据。 在插入新数据之前,我尝试了删除领域中的所有数据,但它似乎并没有删除旧模型中的数据

例如,该应用程序以前有一个型号名称
Car
,但现在我想更具体地说明
Truck
Sedan
,等等。因此我创建了新型号,删除了旧型号
Car
,但在发布后我仍然可以看到
Car
的数据

我想知道是否有办法删除过时的数据。我尝试了迁移,但是由于模式没有旧的模型,realm无法引用过时的数据来删除它们。

realm.compact()
会删除删除后留下的空间。如果没有打开的领域实例,则压缩工作正常


这将添加到1.10.3之后版本的API中。

realm js
人们在realm上公开了一个名为
realm.deleteModel
的方法,用于在迁移期间删除模型。这应该可以解决删除/重命名模型时迁移后数据过时的问题


有关更多详细信息,请参阅

您使用的是同步域还是非同步数据库?只是非同步数据库。现在我正在删除.realm文件以获得我想要的内容,但我想知道是否有更好的选项。可能是
compact()
。啊哈,看起来它将出现在下一个版本中。我假设它所做的是删除文件中不必要的数据?这正是我想要的……哇,直到现在我才意识到他们在JS版本中没有公开
compact()
!啊,好吧,我想我会加上这一点作为答案,因为这将是解决方案,一旦它出来。从技术上讲,
compact()
删除了删除的数据留下的空间。很抱歉取消接受答案,但这似乎不是我问题的解决方案。由于数据过时,realm没有在压缩期间尝试删除它。我仍然可以在领域浏览器中看到数据。当我删除其他数据时,它确实会删除额外的空间。哇。真奇怪。如果对象存储管理JS绑定中的模式,那么如果这不是一个同步领域,那么这就是对象存储中的错误。同步领域不允许破坏性的模式操作,删除的字段/类只是隐藏。在非同步领域afaikIn中不应该是这种情况。在这种情况下,你应该询问他们的Github问题。嗯,很有趣。稍后我应该进一步研究同步领域,看看这是否更适合我们的需要。我在
realmjs
上创建了一个问题。谢谢你的帮助!