删除Realm中的列

时间:2015-12-16 06:57:30

标签: swift realm realm-migration

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

答案是不正确的,因为这类基本迁移和架构更新不会自动发生。如果您仅删除一个属性,然后重新运行您的应用,则会崩溃。

答案是您必须增加schemaVersionRealm.Configuration的值,才能触发其余答案和领域文档中描述的基本内置模式更新。

答案 2 :(得分:0)

实际上,Lucas's answer 是正确的。当我删除一列并且没有更改 schemaVersion 值时,我的 Realm 实例为零。

调试那段代码表明 Realm 返回一个错误,指出您必须更改 schemaVersion 值才能使 Realm 更新数据库架构。否则,如我们所见,Realm 不会将 Realm 对象实例返回给您,而是返回 nil。

Realm 版本为 10.7.2