如何在android中迁移新表?

如何在android中迁移新表?,android,kotlin,realm,realm-migration,Android,Kotlin,Realm,Realm Migration,我向我的领域数据库添加了一个新表。对于迁移,我尝试以下方法: realm.schema.create("AddTodoModel") .addField("id", Long::class.java, FieldAttribute.PRIMARY_KEY) .addField("title", String::class.java , FieldAttribute.INDEXED) .addFiel

我向我的领域数据库添加了一个新表。对于迁移,我尝试以下方法:

 realm.schema.create("AddTodoModel")
      .addField("id", Long::class.java, FieldAttribute.PRIMARY_KEY)
      .addField("title", String::class.java , FieldAttribute.INDEXED)
      .addField("list", RealmList::class.java , FieldAttribute.INDEXED)
      .addField("color", Int::class.java , FieldAttribute.INDEXED)
这是AddToMododel类:

open class AddTodoModel(
    @PrimaryKey
    var id: Long,
    var title: String,
    var list: RealmList<TodoModel>,
    var color: Int
) : RealmObject() {
    constructor() : this(0, "", RealmList<TodoModel>(), R.color.black)
}

我只是在应用程序更新时收到此错误。那么,如何修复此错误并迁移到新版本?

在尝试了一些方法后,我找到了解决方案。也许有人需要这个: 我在数据库中创建了一个列表作为TodoModel类,但是我没有为它创建迁移。我还需要使用
FieldAttribute.REQUIRED
而不是
FieldAttribute.INDEXED
。这是最终的迁移代码:

 realm.schema.create("AddTodoModel")
      .addField("id", Long::class.java, FieldAttribute.PRIMARY_KEY)
      .addField("title", String::class.java, FieldAttribute.REQUIRED)
      .addRealmListField(
           "list",
           realm.schema.create("TodoModel")
           .addField("isDone", Boolean::class.java, FieldAttribute.REQUIRED)
      )
      .addField("color", Int::class.java, FieldAttribute.REQUIRED)
 realm.schema.create("AddTodoModel")
      .addField("id", Long::class.java, FieldAttribute.PRIMARY_KEY)
      .addField("title", String::class.java, FieldAttribute.REQUIRED)
      .addRealmListField(
           "list",
           realm.schema.create("TodoModel")
           .addField("isDone", Boolean::class.java, FieldAttribute.REQUIRED)
      )
      .addField("color", Int::class.java, FieldAttribute.REQUIRED)