讓我假設你的遷移代碼是:
RealmMigration migration = new RealmMigration() {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion == 0) {
schema.create("Person")
.addField("name", String.class)
.addField("age", int.class);
// forgot: oldVersion++;
}
}
}
不能使用的版本,以確定是否應該添加Person
類或撞擊的版本。但你可以使用你知道如果Person
存在,你將需要碰撞的版本。
RealmMigration migration = new RealmMigration() {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion == 0) {
if (schema.contains("Person)) {
oldVersion++;
} else {
schema.create("Person")
.addField("name", String.class)
.addField("age", int.class);
oldVersion++;
}
}
}
}
即使架構版本未更改,是否打算讓領域更新架構? – shoe
不適用於此。我們從來沒有把它看作是一個用例。 – geisshirt