我正面临领域迁移问题。我想在领域数据库中添加新的模型类。请帮我解决这个问题。
public class Migration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion==0){
oldVersion ++;
}
if (oldVersion == 1) {
schema.create("ImportantCalls")
.addField("id", int.class)
.addField("number", String.class)
.addField("callType", String.class)
.addField("startTime", String.class)
.addField("callRecords", String.class)
.addField("callStatus", String.class)
.addField("actualStartTime", Long.class);
oldVersion++;
}
}
@Override
public int hashCode() {
return 37;
}
@Override
public boolean equals(Object o) {
return (o instanceof Migration);
}
}
以上代码用于迁移领域。
下面的代码是我在android中的oncreate()方法的初始化
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dash_board);
Realm.init(this);
// RealmConfiguration config = new RealmConfiguration.Builder()
// .deleteRealmIfMigrationNeeded()
// .build();
RealmConfiguration config = new RealmConfiguration.Builder()
.schemaVersion(5) // Must be bumped when the schema changes
.migration(new Migration()) // Migration to run
.build();
Realm.setDefaultConfiguration(config);
// Realm.deleteRealm(config);
realm.getDefaultInstance();
realm.getDefaultInstance(); in this line.
在进行迁移之前,我通过`Realm.deleteRealm(config);
删除了realm数据库中的数据但实际上这不是一个好习惯,所以我试图迁移数据。请帮我解决这个问题。
答案 0 :(得分:0)
首先,清理项目并重建它。然后,检查您的数据库是否存在,但是您获取并显示到UI。使用RealmObject.isValid()进行检查。例如:
mInteractor.getOneDayData(dayOfWeek, new Repositories.Callback<OneDay>() {
@Override
public void onSuccess(OneDay item) {
if (item.isValid()) { // please check if item is valid before you use it
//udpate ui
} else {
mView.showToast("No data");
}
}
});