如何在Realm中拆分数据库架构?

时间:2018-11-08 11:18:08

标签: realm

我需要使用领域数据库在一个应用程序中具有两个不同的架构。 似乎应该在解决方案下工作:

   open class AModel : RealmObject() {
     var a: Int = 0
   }
   open class BModel : RealmObject() {
     var b: Int = 0
   }
   open class XModel : RealmObject() {
     var x: Int = 0
   }
   open class YModel : RealmObject() {
     var y: Int = 0
   }

@RealmModule(classes = [AModel::class,BModel::class])
open class Schema1

val conf1 = new RealmConfiguration.Builder()
  .name("db1.realm")
  .schemaVersion(1)
  .modules(Schema1())
  .build();

@RealmModule(classes = [XModel::class,YModel::class])
open class Schema2

val conf2 = new RealmConfiguration.Builder()
  .name("db2.realm")
  .schemaVersion(2)
  .modules(Schema2())
  .build();

但是当应用启动并调用Realm.setDefaultConfiguration(conf1)时,它会在错误下方显示:

com.example.XModel  is not part of the schema for this Realm

因此,我似乎错过了配置方面的内容,但查看文档我不知道是什么。那我想念什么?

1 个答案:

答案 0 :(得分:0)

问题是您将conf2的架构版本设置为第二个版本,但是从未创建第一个版本。为此进行更改:

...

val conf2 = new RealmConfiguration.Builder()
  .name("db2.realm")
  .schemaVersion(1)
  .modules(Schema2())
  .build();