오늘 내 응용 프로그램 영역 스키마가 변경되었으므로 마이그레이션을 구현했습니다. 마이그레이션 내부 가, 난 그냥 필드를 추가하는 데 필요한, 그래서 내가 한 :RealmMigration이 내 영역의 모든 데이터를 지움
if (oldVersion == 0) {
RealmObjectSchema class = schema.get("Class");
class.addField("addedField", boolean.class, null)
.transform(new RealmObjectSchema.Function() {
@Override
public void apply(DynamicRealmObject obj) {
obj.set("addedField", false);
}
});
oldVersion++;
}
하지만 내 영역에서 모든 것을 삭제, 나는 더 많은 데이터를 가지고하지 않습니다.
아직 개발 단계에 있으므로 문제가되지 않습니다. RealmMigration을 구현하는 법을 배우기 위해 앱을 제거/재설치하는 대신 마이그레이션을 수행했습니다.
내가 잘못 했습니까? 나는 모든 것이 지워지는 것이 정상입니까? 좀 더 코드를 추가해야합니까? 이미 설명서를 읽고 샘플 앱을 살펴 보았습니다. 제공된 코드는 더 이상 얻지 못했습니다.
범주 구성 :
Realm.init(this);
RealmConfiguration newConfig = new RealmConfiguration.Builder()
.name("myRealm.realm")
.schemaVersion(1)
.migration(new SchemaMigration())
.build();
적어도 :
Realm realm = Realm.getInstance(newConfig);
EDIT :
내가name("myRealm.realm")
을 제거하여이를 해결했다. 처음 설치할 때 RealmConfiguration
을 사용하지 않았으므로 영역의 이름은 "default.realm"이었습니다. 귀하의 지원과 답변에 감사드립니다.
이주가 시도되기 전에. – EpicPandaForce
아니요. 내가 설정의 코드와 함께 대답을 업데이 트합니다 –