我不能使用迁移领域
在我的项目中,您需要配置领域的迁移。我创建了一个迁移类,添加了迁移,并将字段添加到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++;
}
}
}