Realm Kotlin迁移Android字符串

问题描述 投票:0回答:2

找不到答案。我正在尝试迁移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)

什么都没有帮助:(

android kotlin migration realm
2个回答
1
投票

将其添加到迁移中

s
    .addField("jsonRequest", String::class.java)
    .setRequired("jsonRequest", true)

1
投票

非原始类型String的另一个选项:

s.addField("jsonRequest", String::class.java, FieldAttribute.REQUIRED)

但是对于所需的Int,你通常使用int.classInteger.class,这就是你使用javaPrimitiveTypejavaObjectType的原因。

© www.soinside.com 2019 - 2024. All rights reserved.