我需要添加一个@PrimaryKey
到两个由于白痴而缺少它的 Realm 模型。这些模型通过直接关系或 RealmList 在多个其他模型中引用,两个模型之一也引用另一个模型。
我的第一个想法是在迁移中重命名模式并手动复制数据,但随后 Realm 抱怨该模式与其他模式链接并且无法重命名。
两种模式都包含大约 15000 个对象,可以压缩到大约 100 个,它们完全相同,并且由于缺少@PrimaryKey
.
模型本身有点简单:
class ModelA extends RealmObject {
String primaryKey; // Is missing the @PrimaryKey annotation
String someField;
String someOtherField;
Date someDate;
ModelB relationToTheOtherProblematicModel;
}
class ModelB extends RealmObject {
String primaryKey; // Is also missing the @PrimaryKey annotation
// this class only contains String fields and one Date field
}
@PrimaryKey
添加到两个类的primaryKey
字段时如何迁移数据?
编辑以澄清:
两种模式都包含多个完全相同的项目。
primaryKey | someField | someOtherField
------ | ------ | ------
A | foo | bar
A | foo | bar
A | foo | bar
A | foo | bar
B | bar | foo
B | bar | foo
B | bar | foo
C | far | boo
C | far | boo
C | far | boo
由于 primaryKey 唯一标识它们,因此可以删除这些重复项。当我添加 @PrimaryKey 注释并进行迁移时,领域显然会抱怨重复值。我需要在不破坏其他模型中的链接的情况下删除这些重复项。