【发布时间】:2016-06-21 13:39:31
【问题描述】:
我想将 Realm 字段的数据类型从 String 更改为 int,仅供参考,该字段也是 Primary Key。我在RealmMigration 中找不到解决此问题的方法。
PS : 我的应用程序已经在生产中,当前该字段中的所有值都是整数。
编辑 1
我的模型课
public class Team extends RealmObject {
@SerializedName("id")
@PrimaryKey
private int id;
@SerializedName("name")
private String name;
@SerializedName("description")
private String description;
}
我尝试了克里斯蒂安的回答后的迁移
if (oldVersion == 6) {
RealmObjectSchema teamSchema = schema.get("Team");
teamSchema.addField("temp_id", int.class)
.transform(new RealmObjectSchema.Function() {
@Override
public void apply(DynamicRealmObject obj) {
obj.setInt("temp_id", Integer.valueOf(obj.getString("id")));
}
})
.removeField("id")
.renameField("temp_id", "id")
.addPrimaryKey("id");
}
【问题讨论】: