添加 RealmList<Int> (Kotlin) 时出现 RealmMigrationNeededException
RealmMigrationNeededException when adding RealmList<Int> (Kotlin)
我想将 原始 列表添加到现有模型,但出现异常。
注意:这一切都是在 Kotlin..
中完成的
这是模型:
open class Foo(
@PrimaryKey var id: Int = 0
) : RealmObject()
现在我要添加以下字段:
var idList: RealmList<Int> = RealmList()
这可能是一个空列表,所以我用一个空白 RealmList
初始化它(它曾经用于非原始列表字段)。
我的迁移是这样的:
schema.get("Foo")
?.addRealmListField("idList", Int::class.java)
当 运行 应用程序时,我得到一个 RealmMigrationNeededException
:
Migration is required due to the following errors:
- Property 'Foo.idList' has been made optional.
我可以通过将 @Required
添加到模型中的新字段来解决这个问题,但我不确定列表是否仍然可以为空/null。
将原始列表添加到模型的正确方法是什么?正确的迁移是什么?
其实你的迁移是正确的。如果您不希望列表能够包含 null
作为值(考虑到它是一个 RealmList<Integer>
,其中 Integer
可以为 null),您应该添加 @Required
注释。
我想将 原始 列表添加到现有模型,但出现异常。
注意:这一切都是在 Kotlin..
这是模型:
open class Foo(
@PrimaryKey var id: Int = 0
) : RealmObject()
现在我要添加以下字段:
var idList: RealmList<Int> = RealmList()
这可能是一个空列表,所以我用一个空白 RealmList
初始化它(它曾经用于非原始列表字段)。
我的迁移是这样的:
schema.get("Foo")
?.addRealmListField("idList", Int::class.java)
当 运行 应用程序时,我得到一个 RealmMigrationNeededException
:
Migration is required due to the following errors:
- Property 'Foo.idList' has been made optional.
我可以通过将 @Required
添加到模型中的新字段来解决这个问题,但我不确定列表是否仍然可以为空/null。
将原始列表添加到模型的正确方法是什么?正确的迁移是什么?
其实你的迁移是正确的。如果您不希望列表能够包含 null
作为值(考虑到它是一个 RealmList<Integer>
,其中 Integer
可以为 null),您应该添加 @Required
注释。