领域 Kotlin 迁移 Android 字符串

Realm Kotlin migration Android String

找不到答案。 我正在尝试迁移 Realm 数据库。需要创建一个 table 具有 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)

它抛出一个错误:

Caused by: io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors: - Property 'DBRequest.jsonRequest' has been made required.

我不知道该如何解决。我试过这样的事情:

s.addField("jsonRequest", String::class.javaPrimitiveType!!)
-or-
s.addField("jsonRequest", String::class.javaObjectType)

没有任何帮助:(

将此添加到迁移中

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

非基本类型字符串的另一种选择:

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

不过,对于必需的 Int,您通常会使用 int.classInteger.class,这就是为什么您相应地使用 javaPrimitiveTypejavaObjectType 的原因。