我正在检查迁移文档,但是,我不确定我是否忽略了或者没有说明,但我注意到文档只解释了如何添加列,如果我想删除列怎么办?
答案 0 :(得分:4)
在Realm Swift文档的Migrations部分,它实际上向您展示了如何删除两列(firstName
和lastName
),并用一个新属性替换它们(即fullName
)。
要从Realm文件中删除列,您只需从模型对象中删除这些属性,然后运行迁移。
如果您希望保留这些列中的信息,您可以选择将该信息移动到迁移闭包内的新属性(文档演示的内容)。这是完全可选的,如果使用空闭包运行迁移,则只会删除列并删除数据。
答案 1 :(得分:1)
答案是不正确的,因为这类基本迁移和架构更新不会自动发生。如果您仅删除一个属性,然后重新运行您的应用,则会崩溃。
答案是您必须增加schemaVersion
中Realm.Configuration
的值,才能触发其余答案和领域文档中描述的基本内置模式更新。
答案 2 :(得分:0)
实际上,Lucas's answer 是正确的。当我删除一列并且没有更改 schemaVersion
值时,我的 Realm 实例为零。
调试那段代码表明 Realm 返回一个错误,指出您必须更改 schemaVersion
值才能使 Realm 更新数据库架构。否则,如我们所见,Realm 不会将 Realm 对象实例返回给您,而是返回 nil。
Realm 版本为 10.7.2