我想向我的应用程序添加第二个Realm数据库。第一个是通过解压缩我的应用程序中已经提供的领域文件来创建的。我设置了指向这个的配置。
如何添加第二个Realm数据库?这两个数据库彼此独立。我创建了SecondRealm类,用于扩展领域对象。
遵循以下内容: Realm: Use one or multiple realms in an app (and one or multiple schemas)
但是我得到:
io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
-Class 'SecondRealm' has been added
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(Native Method)
at io.realm.internal.OsSharedRealm.<init>(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
at io.realm.BaseRealm.<init>(BaseRealm.java:136)
at io.realm.BaseRealm.<init>(BaseRealm.java:105)
at io.realm.Realm.<init>(Realm.java:164)
at io.realm.Realm.createInstance(Realm.java:435)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:342)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:282)
at io.realm.Realm.getInstance(Realm.java:364)
答案 0 :(得分:0)
Realm自动生成一个DefaultRealmModule
,其中包含在当前模块中带有@RealmClass
注释的每个类(因此包括扩展RealmObject的类)。
如果这不是您需要的架构,那么您需要定义自己的RealmModule,以描述要为给定RealmConfigurations打开的给定Realm文件的架构。
@RealmModule(library = false, classes=[FirstRealm::class.java])
data class FirstModule(val placeholder: String) { // empty data class for equals/hashcode
constructor(): this("")
}
@RealmModule(library = false, classes=[SecondRealm::class.java])
data class SecondModule(val placeholder: String) { // empty data class for equals/hashcode
constructor(): this("")
}
val firstConfig = RealmConfiguration.Builder()
.name("first.realm")
.modules(FirstModule())
.build()
val secondConfig = RealmConfiguration.Builder()
.name("second.realm")
.modules(SecondModule())
.build()
val realm1 = Realm.getInstance(firstConfig)
val realm2 = Realm.getInstance(secondConfig)