在当前模式中,我有一个类User。我想在该类中添加另一个字段,但我不想持久化,但我想从后端获取它并将其存储在其他地方。我在该字段上使用了@Ignore注解,但我不知道是否需要迁移数据库,模式是否发生了变化?
kxxlusnw1#
问题来了(来自评论)如果我向已经创建的类(schema)添加了一个不想持久化的常规代码属性(var)(我使用了@Ignore注解),这是否意味着scema发生了某种变化,我需要进行迁移?不,忽略的属性就是忽略的属性,不受Realm的任何管理。默认情况下,领域管理在领域对象模型中定义的属性,托管属性在数据库中存储或更新。忽略属性不存储到数据库中。可以在类中混合托管属性和忽略属性。因此,在本例中,如果我们有一个Dog类,它具有托管属性name
name
class Dog : RealmObject { var name: String = "" }
如果添加了一个属性来存储tempId(不需要管理)
class Dog : RealmObject { var name: String = "" @Ignore var tempId: Int = 0 // Ignored property }
这不会导致模式的更改,也不需要迁移,因为没有数据要迁移。
1条答案
按热度按时间kxxlusnw1#
问题来了(来自评论)
如果我向已经创建的类(schema)添加了一个不想持久化的常规代码属性(var)(我使用了@Ignore注解),这是否意味着scema发生了某种变化,我需要进行迁移?
不,忽略的属性就是忽略的属性,不受Realm的任何管理。
默认情况下,领域管理在领域对象模型中定义的属性,托管属性在数据库中存储或更新。忽略属性不存储到数据库中。可以在类中混合托管属性和忽略属性。
因此,在本例中,如果我们有一个Dog类,它具有托管属性
name
如果添加了一个属性来存储tempId(不需要管理)
这不会导致模式的更改,也不需要迁移,因为没有数据要迁移。