找不到答案。我正在尝试迁移Realm数据库。需要创建一个包含2个字段的表DBRequest:Int和String
if (oldVersion == 5L) {
val s = scheme.create("DBRequest")
s.addField("apiCode", Int::class.java)
}
那没关系!但是,如果我也想添加String类型
s.addField("jsonRequest", String::class.java)
它会抛出一个错误:
引起:io.realm.exceptions.RealmMigrationNeededException:由于以下错误,需要迁移: - 已经需要属性'DBRequest.jsonRequest'。
我不知道如何解决它。我试过像这样的smth:
s.addField("jsonRequest", String::class.javaPrimitiveType!!)
-or-
s.addField("jsonRequest", String::class.javaObjectType)
什么都没有帮助:(
将其添加到迁移中
s
.addField("jsonRequest", String::class.java)
.setRequired("jsonRequest", true)
非原始类型String的另一个选项:
s.addField("jsonRequest", String::class.java, FieldAttribute.REQUIRED)
但是对于所需的Int
,你通常使用int.class
或Integer.class
,这就是你使用javaPrimitiveType
或javaObjectType
的原因。