У меня есть проблема с получением Realm успешно мигрировать и могли бы сделать с немного помочь будучи мастерить с ним в течение нескольких недель ..Realm
У меня есть область БД работает, с помощью которого я имею в виду сохранение данных и возврат данных.
Скажем, я хочу добавить новое поле «имя пользователя». Я обновляю свой код RealmObject, чтобы использовать новое поле. В моем App.java Затем я использую:
System.out.println("Configuring Realm...");
RealmConfiguration config1 = new RealmConfiguration.Builder(this)
.schemaVersion(1)
.migration(new Migration())
.build();
realm = Realm.getInstance(config1);
realm.close();
Мои Migration.java выглядит следующим образом:
public class Migration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
RealmObjectSchema theSchema = schema.get("RealmStore");
System.out.println("Realm version is " + oldVersion);
if (oldVersion == 0) {
theSchema
.addField("username", String.class);
oldVersion++;
System.out.println("Realm migrated from 0 to 1");
}
}
}
я запустить приложение и следующий вывод Дано:
I/System.out: Configuring Realm...
I/System.out: Realm version is 0
I/System.out: Realm migrated from 0 to 1
Все хорошо ! Кроме..! При повторном запуске приложения вы получаете следующую ошибку:
E/AndroidRuntime: FATAL EXCEPTION: main
E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rh.realmy/com.rh.realmy.Main}: java.lang.IllegalArgumentException: Realm on disk is newer than the one specified: v1 vs. v0
Любые идеи?
Это происходит, когда вы используете конфиг без специального 'schemaVersion' или нижайшего' schemaVersion', чем версия после миграции. Вы открываете Realm с другой конфигурацией? – beeender
Привет, beeender, нет, никакой другой конфигурации – RJH
Это действительно странно ... вы не можете поделиться своим проектом в частном порядке? Чтобы [email protected] – beeender