我现在在我的机器人中使用了Realm
new RealmConfiguration.Builder(this) .build();
我稍后会阅读有关添加架构和迁移的可能性.所以在我的应用程序的新版本中,我想添加迁移功能.所以我将上面的行更改为:
new RealmConfiguration.Builder(this) .schemaVersion(0) .migration(new Migration()) .build();
Run Code Online (Sandbox Code Playgroud)
但现在我得到了错误
IllegalArgumentException: Configurations cannot be different if used to open the same file.
Run Code Online (Sandbox Code Playgroud)
如何在不删除数据库的情况下更改配置
Chr*_*ior 26
我认为您的问题是您多次创建RealmConfiguration.这本身不应该是一个问题(虽然效率很低),但问题出现在你的Migration班级.在内部我们比较配置对象中的所有状态,如果你没有覆盖,equals并且hashCode在你的Migration类中你有一个案例,new Migration().equals(new Migration()) == false它会给你看到的错误.
一种解决方案是添加:
public class Migration implements RealmMigration {
// Migration logic...
@Override
public int hashCode() {
return 37;
}
@Override
public boolean equals(Object o) {
return (o instanceof Migration);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4372 次 |
| 最近记录: |