android 如果我添加了带有@Ignore注解的字段,是否必须迁移Realm数据库?

pod7payv  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(159)

在当前模式中,我有一个类User。我想在该类中添加另一个字段,但我不想持久化,但我想从后端获取它并将其存储在其他地方。
我在该字段上使用了@Ignore注解,但我不知道是否需要迁移数据库,模式是否发生了变化?

kxxlusnw

kxxlusnw1#

问题来了(来自评论)
如果我向已经创建的类(schema)添加了一个不想持久化的常规代码属性(var)(我使用了@Ignore注解),这是否意味着scema发生了某种变化,我需要进行迁移?
不,忽略的属性就是忽略的属性,不受Realm的任何管理。
默认情况下,领域管理在领域对象模型中定义的属性,托管属性在数据库中存储或更新。忽略属性不存储到数据库中。可以在类中混合托管属性和忽略属性。
因此,在本例中,如果我们有一个Dog类,它具有托管属性name

class Dog : RealmObject {
    var name: String = ""
}

如果添加了一个属性来存储tempId(不需要管理)

class Dog : RealmObject {
    var name: String = ""

    @Ignore
    var tempId: Int = 0 // Ignored property
}

这不会导致模式的更改,也不需要迁移,因为没有数据要迁移。

相关问题