微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Android中迁移新表的领域?

如何解决如何在Android中迁移新表的领域?

我将新表添加到我的领域数据库。对于迁移,我尝试采用这种方式:

 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)

这是AddTodoModel类:

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)
}

启动应用程序时,出现此错误

java.lang.IllegalArgumentException: Use addRealmObjectField() instead to add fields that link to other RealmObjects: list

应用更新时,我只会收到此错误。那么,如何解决错误并迁移到新版本?

解决方法

尝试某种方式后,我找到了解决方案。也许有人需要这个: 我在数据库中创建了一个列表作为TodoModel类,但是我想为此创建一个迁移。而且我还需要使用#define LIST_DATA_TYPE int而不是FieldAttribute.REQUIRED。这是最终的迁移代码:

FieldAttribute.INDEXED

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。