移除 Realm 中的列

Remove column in Realm

我正在查看迁移文档,但是,我不确定是我忽略了还是没有说明,但是我注意到文档只说明了如何添加列,如果我想删除列怎么办?

在 Realm Swift 文档的 Migrations 部分,它实际上向您展示了如何删除两列(firstNamelastName),并将它们替换为一个新的 属性(即 fullName)。

要从 Realm 文件中删除列,您需要做的就是从模型对象中删除这些属性,然后 运行 进行迁移。

如果您希望保留这些列中的信息,您可以选择将该信息移动到迁移闭包内的新 属性(如文档所示)。这完全是可选的,如果您 运行 使用空闭包进行迁移,那么列和数据将被删除。

答案不正确,因为这些基本迁移和架构更新不会自动发生,即。如果您只删除 属性,然后重新 运行 您的应用程序,您将遇到崩溃。

答案是您必须增加 Realm.ConfigurationschemaVersion 的值,以触发其余答案和领域文档中描述的基本内置架构更新。

实际上,是正确的。当我删除一列并且没有更改 schemaVersion 值时,我得到了 nil Realm 实例。

调试那段代码显示 Realm return 是一个错误,指出您必须更改 schemaVersion 值以便 Realm 更新数据库架构。否则,如我们所见,Realm 将不会 return Realm object instance to you but nil.

Realm 版本是 10.7.2