【发布时间】:2017-01-11 12:45:55
【问题描述】:
在我们的应用程序中,我们使用静态领域,我们可以在运行时加载和更新。为了识别领域方案的正确版本,我们使用领域方案描述的 md5 散列。因此,如果我们的架构发生变化,我们只需要提供一个新版本的数据库并且应用程序能够找到它。这样我们就可以同时发布多个版本,每个版本都可以加载或更新其对应的数据库。
这工作了很长时间,直到我们最近发现,在极少数情况下,模拟器和设备上的领域方案描述并不相同。我们有大约 35 个实体,奇怪的是只有一个描述在字段顺序上有所不同。
SomeEntity {
telefon {
type = bool;
objectClassName = (null);
linkOriginPropertyName = (null);
indexed = NO;
isPrimary = NO;
optional = YES;
}
email {
type = bool;
objectClassName = (null);
linkOriginPropertyName = (null);
indexed = NO;
isPrimary = NO;
optional = YES;
}
}
有什么不同? “电话”和“电子邮件”在真实设备上按顺序切换 - 这当然会导致不同的 md5 哈希。
所有设备上的描述不应该都相同吗?
识别领域方案的独特而可靠的方法是什么?
编辑
我们在两个设备上使用相同版本的领域。
【问题讨论】: