Realm.getInstance(context) 迁移后不再工作

Realm.getInstance(context) not working anymore after Migration

迁移后,我不能再使用 Realm.getInstance(context);

错误:java.lang.IllegalArgumentException: Configurations cannot have different schema versions if used to open the same file. 1 vs. 0

我看到我必须使用之前创建的配置来进行迁移

RealmConfiguration config1 = new RealmConfiguration.Builder(this)
                .schemaVersion(1)
                .migration(new Migration())
                .build();

现在我必须在所有使用

的地方重新创建 config1

Realm.getInstance(context);

我过去常常为每个方法添加这个以避免任何类型的 null

public List<CustomClass> getAll() {
realm = Realm.getInstance(context);
....
}



public CustomClass getOneById(int id) {
realm = Realm.getInstance(context);
...
}

有时在 DAO class 之外我动态更改数据库我使用这个:

Realm.getInstance(context).beginTransaction();

change object

Realm.getInstance(context).commitTransaction();

现在我必须到处创建这个 CONFIG1 (RealmConfiguration) 吗?或者还有其他方法吗?

我尝试将此 Realm.setDefaultConfiguration(CONFIG1); 添加到 MainClass 但没有成功 =/

我在为每个方法调用 getInstance 的领域对象上检查或避免 null 是错误的吗?

使用Realm.setDefaultConfiguration(CONFIG1); 设置默认配置:

并使用 Realm.getDefaultInstance(); 获取默认领域实例。