我正在查看迁移文档,但是,我不确定我是否忽略了或没有说明,但我注意到文档仅说明了如何添加列,如果我想删除列怎么办?
问问题
4641 次
3 回答
7
答案是不正确的,因为这些基本迁移和模式更新不会自动发生,即。如果你只删除一个属性,然后重新运行你的应用程序,你会崩溃。
答案是您必须增加schemaVersion
in的值Realm.Configuration
才能触发其余答案和领域文档中描述的基本内置模式更新。
于 2019-02-21T17:54:52.247 回答
6
在 Realm Swift 文档的Migrations部分中,它实际上向您展示了如何删除两列(firstName
和lastName
),并用一个新属性(即fullName
)替换它们。
要从 Realm 文件中删除列,您需要做的就是从模型对象中删除这些属性,然后运行迁移。
如果您希望保留这些列中的信息,您可以选择将该信息移动到迁移闭包内的新属性(这是文档演示的内容)。这是完全可选的,如果您使用空闭包运行迁移,则将简单地删除列并删除数据。
于 2015-12-16T07:37:45.793 回答
0
事实上,卢卡斯的回答是正确的。当我删除一列并且没有更改schemaVersion
值时,我得到了 nil Realm 实例。
调试那段代码显示 Realm 返回一个错误,指出您必须更改schemaVersion
值才能让 Realm 更新数据库模式。否则,如我们所见,Realm 不会将 Realm 对象实例返回给您,而是返回 nil。
领域版本是 10.7.2
于 2021-04-14T08:22:43.983 回答