【发布时间】:2017-07-04 07:59:39
【问题描述】:
我正面临领域迁移的问题。我想在领域数据库中添加新的模型类。请帮我解决这个问题。
public class Migration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion==0){
oldVersion ++;
}
if (oldVersion == 1) {
schema.create("ImportantCalls")
.addField("id", int.class)
.addField("number", String.class)
.addField("callType", String.class)
.addField("startTime", String.class)
.addField("callRecords", String.class)
.addField("callStatus", String.class)
.addField("actualStartTime", Long.class);
oldVersion++;
}
}
@Override
public int hashCode() {
return 37;
}
@Override
public boolean equals(Object o) {
return (o instanceof Migration);
}
}
以上代码用于迁移领域。
下面的代码是我在 android 的 oncreate() 方法中初始化的领域
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dash_board);
Realm.init(this);
// RealmConfiguration config = new RealmConfiguration.Builder()
// .deleteRealmIfMigrationNeeded()
// .build();
RealmConfiguration config = new RealmConfiguration.Builder()
.schemaVersion(5) // Must be bumped when the schema changes
.migration(new Migration()) // Migration to run
.build();
Realm.setDefaultConfiguration(config);
// Realm.deleteRealm(config);
realm.getDefaultInstance();
异常发生在realm.getDefaultInstance(); in this line.
在进行迁移之前,我通过 `Realm.deleteRealm(config); 删除了领域数据库中的数据;
但实际上这不是一个好习惯,所以我尝试迁移数据。请帮我解决这个问题。`
【问题讨论】:
-
您的迁移说的是 v5,但在您的代码中,您将类添加到 v1。 2-5 发生了什么?
-
@Christian Melchior 我想在我的代码中更改什么
-
@PrabhaKaran 您需要版本 2 到 5 的迁移步骤吗?
标签: android realm realm-migration