迁移完成后,我无法再使用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();
现在我必须在每个使用
Realm.getInstance(context);
的地方重新创建config1,我以前为了避免任何类型的null而在每个方法中添加了这个。
public List<CustomClass> getAll() {
realm = Realm.getInstance(context);
....
}
public CustomClass getOneById(int id) {
realm = Realm.getInstance(context);
...
}
有时候在 DAO 类之外,我会动态更改使用的数据库,我会使用以下代码:
Realm.getInstance(context).beginTransaction();
change object
Realm.getInstance(context).commitTransaction();
现在我必须到处创建这个CONFIG1(RealmConfiguration)吗?还是有其他方法?
我尝试将
Realm.setDefaultConfiguration(CONFIG1);
添加到MainClass中,但没有成功=/。我是否在每种方法调用时检查或避免对realm对象调用getInstance时出错了?