я не могу использовать область миграции
в моем проекте вам нужно настроить миграцию области. Я создал класс миграции, добавил миграцию и добавил поле в realmObject, но миграция не работает
я получаю это сообщение об ошибке:
Миграция требуется из-за следующих ошибок:
- Добавлено свойство 'PickupState.latitude'.
- Добавлено свойство 'PickupState.longitude'.
старая модель realmObject
public class PickupState extends RealmObject {
@PrimaryKey
private long autoIncrementId;
private long id;
private String userName;
private String eventType;
private String eventData;
private String syncStatus;
private String syncErrorCode;
public void setAutoIncrementId(long l) {
autoIncrementId = l;
}
public long getAutoIncrementId() {
return autoIncrementId;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEventType() {
return eventType;
}
public void setEventType(State eventType) {
this.eventType = eventType.name();
}
public String getEventData() {
return eventData;
}
public void setEventData(String eventData) {
this.eventData = eventData;
}
public String getSyncStatus() {
return syncStatus;
}
public void setSyncStatus(String syncStatus) {
this.syncStatus = syncStatus;
}
public String getSyncErrorCode() {
return syncErrorCode;
}
public void setSyncErrorCode(String syncErrorCode) {
this.syncErrorCode = syncErrorCode;
}
}
новый realmObject
public class PickupState extends RealmObject {
@PrimaryKey
private long autoIncrementId;
private long id;
private String userName;
private String eventType;
private String eventData;
private String syncStatus;
private String syncErrorCode;
private double latitude;
private double longitude;
public void setAutoIncrementId(long l) {
autoIncrementId = l;
}
public long getAutoIncrementId() {
return autoIncrementId;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getEventType() {
return eventType;
}
public void setEventType(State eventType) {
this.eventType = eventType.name();
}
public String getEventData() {
return eventData;
}
public void setEventData(String eventData) {
this.eventData = eventData;
}
public String getSyncStatus() {
return syncStatus;
}
public void setSyncStatus(String syncStatus) {
this.syncStatus = syncStatus;
}
public String getSyncErrorCode() {
return syncErrorCode;
}
public void setSyncErrorCode(String syncErrorCode) {
this.syncErrorCode = syncErrorCode;
}
public double getLatitude() {
return latitude;
}
public void setLatitude(double latitude) {
this.latitude = latitude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
}
класс миграции:
public class PickupStateMigration implements RealmMigration {
@Override
public void migrate(@NonNull DynamicRealm realm, long oldVersion, long newVersion) {
final RealmObjectSchema schema = realm.getSchema().get("PickupState");
assert schema != null;
if (oldVersion == 0) {
schema.addField("latitude", double.class);
schema.addField("longitude", double.class);
oldVersion++;
}
}
}