Iphone CoreData迁移-删除关系规则

Iphone CoreData迁移-删除关系规则,iphone,ios,ipad,core-data,migration,Iphone,Ios,Ipad,Core Data,Migration,如果更改managedObjects关系的删除规则,我找不到任何有关迁移规则的信息 我的初始coredata模型包含一个具有关系的实体。此关系的删除规则是cascade。我必须将此行为更改为null 因此,我创建了coredata模型的新版本,但没有任何轻量级迁移,它仍然可以工作。因此,我想知道我是否应该添加模型的新版本,或者删除规则的更改(例如从cascade到nullify)是否不会影响/需要任何迁移 有什么建议吗?删除规则指定了核心数据在运行时的行为:如果删除了一个对象,其他关系可能会设置

如果更改
managedObjects关系的
删除规则
,我找不到任何有关
迁移规则的信息

我的初始coredata模型包含一个具有关系的实体。此关系的删除规则是
cascade
。我必须将此行为更改为
null

因此,我创建了coredata模型的
新版本
,但没有任何轻量级迁移,它仍然可以工作。因此,我想知道我是否应该添加模型的新版本,或者删除规则的更改(例如从
cascade
nullify
)是否不会影响/需要任何迁移


有什么建议吗?

删除规则指定了核心数据在运行时的行为:如果删除了一个对象,其他关系可能会设置为NULL,或者相关对象也可能会被删除

因此,我假设删除规则只存储在核心数据模型中,而不存储在持久存储文件中

为了验证这一点,我从两个具有相同实体但不同删除规则的核心数据模型中创建了两个存储文件。持久存储
元数据
字典中的
NSStoreModelVersionHash
是相同的

事实上,两个SQLite文件都是相同的,唯一的例外是“Z_元数据”表中的“Z_UUID”,它是持久存储文件的
NSStoreUUID

另外,
addPersistentStoreWithType:…
如果加载存储的版本哈希与模型中的哈希不同,则会失败


因此,更改删除规则应该不是问题。

没有轻量级迁移吗?因此,在添加持久存储时,您不使用
nsmigratePersistentStoresAutomaticalyOption
nsinFermappingModelLauAutomaticalyOption
?不,我使用以下命令创建我的存储:coordinator addPersistentStoreWithType:NSSQLiteStoreType配置:nilURL:storeURL选项:无错误:&错误]这正是我所经历的-相同的哈希。我只是想解释一下,因为在苹果文档中,我发现deleteRules应该是相关的:[…]对于每个实体中的每个属性,以下属性必须相等:name、isOptional、isTransient、isReadOnly、attributes attributeType和relationships destinationEntity、minCount、maxCount、deleteRule,和反向关联[…]!那么,您是否也不会为更改创建一个新版本?亚历山大:我必须承认,我没有查阅文档(你能告诉我位置吗?),我只是按照描述对它进行了测试。您已经测试了
addPersistentStoreWithType:
是否有效,所以我看不出有问题。现在(底部第8页):@Alexander:我认为版本控制+迁移指南在这一点上是错误的。如果您在
nsrrelationshipsdescription
文档中查找
versionHash
:其中提到了目标实体、反向关系、最小+最大计数,但没有提到删除规则。我也这么认为。无论如何,现在我们知道它不影响版本控制。非常感谢你的努力!