我在当前的Android项目中使用版本0.79.0的境界.现在,我想将领域版本更新为0.84.0,还想在Application类中使用RealmConfiguration来使用Realm.getDefaultInstance()而不是Realm.getInstance(context)进行领域初始化.
我实现了新的领域版本,还更改了必要的配置.但是当我运行我的应用程序时,它崩溃并显示错误信息
Realm Migration must be provided
以为我没有改变任何模型课.
谁能告诉我如何通过Android的默认配置更改领域版本,而无需进行任何迁移?如果没有迁移是不可能的,那么迁移类将是什么样?
解决方法:
您需要迁移,因为我们在0.83.0中引入了对空值的支持.您可以在此处了解有关如何迁移的更多信息:https://realm.io/news/realm-java-0.83.0/
但是您需要添加一个如下所示的迁移:
RealmMigration migration = new RealmMigration() {
@Override
public long execute(Realm realm, long version) {
Table table = realm.getTable(Dog.class);
// Needed for all Strings
table.convertColumnToNullable(table.getColumnIndex("name"));
return 1;
}
};
RealmConfiguration realmConfig = new RealmConfiguration.Builder(getContext())
.schemaVersion(1)
.migration(migration)
.build();