【发布时间】:2017-10-06 05:48:56
【问题描述】:
我想使用Realm migration 只维护一张表的数据。例如这里,我想维护Profile User 表的数据并删除表的所有其余部分。
这是我到目前为止所做的。但是数据库中的所有内容都会被删除。
initRealm() 被 onCreate() 调用
private void initRealm() {
Realm.init(this);
RealmConfiguration configuration = new RealmConfiguration.Builder()
.schemaVersion(3)
.name("sipradi")
.migration(new RealmMigrationClass())
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(configuration);
}
配置类
private class RealmMigrationClass implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion == 2) {
RealmObjectSchema profileUserSchema = schema.get("ProfileUser");
profileUserSchema.addField("test", String.class);
oldVersion++;
}
}
}
【问题讨论】:
-
如果你想迁移,你可能不应该指定
.deleteRealmIfMigrationNeeded():P -
是的,我知道,但我将如何解决这种情况。
-
删除
.deleteIfMigrationNeeded()?
标签: java android realm realm-migration