Как разбить схему базы данных в Realm? - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужно иметь две разные схемы в одном приложении, используя realb db. Похоже, что должно работать ниже решения:

   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 голосов
/ 09 ноября 2018

Проблема в том, что вы задали версию схемы conf2 как вторую версию, но первая никогда не создавалась. Измените это для этого:

...

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