7

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

4

3 回答 3

7

答案是不正确的,因为这些基本迁移和模式更新不会自动发生,即。如果你只删除一个属性,然后重新运行你的应用程序,你会崩溃。

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

于 2019-02-21T17:54:52.247 回答
6

在 Realm Swift 文档的Migrations部分中,它实际上向您展示了如何删除两列(firstNamelastName),并用一个新属性(即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 回答