android - 如何使用两种不同的 Realm 配置

标签 android realm realm-java

我正在使用默认 Realm 实例,其中包含一些模式。现在,我想在不同的 Realm 实例中创建一个新模式。所以我创建了一个新的 Realm 配置,当我为这个新模式查询或存储实体时,我使用新配置,而不是默认配置。通过这种方式,我希望避免为新模式创建迁移的需要,因为我将它与不同的数据库一起使用。但是当我使用默认 Realm 实例时,会抛出一个异常 (RealmMigrationNeededException),它告诉我必须为我的新模式创建一个迁移。如果我只想在新数据库中使用我的新模式,我可以以任何方式避免这种情况吗?

最佳答案

查看 Realm 的文档: https://realm.io/docs/java/latest/#schemas

您需要为不同的配置定义 2 个自定义模块。 例如,configB 只关心 Cat.class 模式。

// Create my module A
@RealmModule(classes = { Person.class, Dog.class })
public class MyModule {
}

// Create the module B
@RealmModule(classes = { Cat.class })
public class MyOtherModule {
}

// Set the module in the RealmConfiguration to allow only classes defined by the module.
RealmConfiguration configA = new RealmConfiguration.Builder()
  .modules(new MyModule())
  .name("A.realm")
  .build();

RealmConfiguration configB = new RealmConfiguration.Builder()
  .modules(new MyOtherModule())
  .name("B.realm")
  .build();

关于android - 如何使用两种不同的 Realm 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44156557/

相关文章:

java - longBitsToDouble,不进行舍入,是否可以

java - 当edittext不为空时如何自动按回车键?

android - 进度条周围的边框

swift - 如何创建 Realm 列表的扩展?

java - 尝试将自定义字体应用于按钮时出现 NullPointerException

swift - 通过Decodable初始化Realm对象

swift - 从 Realm 数组中查询特定结果

java - Realm createOrUpdateAllFromJson 创建 RealmModel 对象而不持久化?

java - Realm 删除除一张表之外的所有表

java - 按关系值排序?