使用addRealmObjectField添加新架构时出现RealmMigrationNeededException

时间:2019-02-07 13:11:48

标签: android kotlin realm realm-migration

我想向我的数据库添加一个引用另一个新模式的新模式。

以下是模型:

open class Code(
    var name: String? = null,
    var code: String? = null
) : RealmObject()

open class Foo(
    var codes: RealmList<Code> = RealmList()
) : RealmObject()

迁移:

val codeSchema = schema.create("Code")
        .addField("name", String::class.java)
        .addField("code", String::class.java)

schema.create("Foo")
    .addRealmObjectField("codes", codeSchema)

但这会因以下错误而崩溃:

io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
    - Property 'Foo.codes' has been changed from '<Code>' to 'array<Code>'.

因为它们都是 new 模型,所以我不知道为什么它告诉我“已被更改”。

如何正确添加这两个模型?

1 个答案:

答案 0 :(得分:1)

知道了。我需要使用addRealmListField()而不是addRealmObjectField(),因为它引用一个列表而不是单个对象。