CoreData迁移 - 删除关系规则

Ale*_*der 12 migration iphone core-data ipad ios

我没有发现任何migration rules改变deletion rulea的情况managedObjects relationship

我最初的coredata模型包含一个有关系的实体.这种关系的删除规则是cascade.我不得不改变这种行为Nullify.

因此我创建了一个new version of my coredata model但没有任何轻量级迁移,它仍然有效.所以我wounder如果我应该做我的加入模型,或者如果更改删除规则(例如从一个新的版本cascadenullify)并不影响/需要任何迁移.

有什么建议?

Mar*_*n R 19

删除规则在运行时指定Core Data的行为:如果删除了一个对象,则可以将其他关系设置为NULL,或者也可以删除相关对象.

因此,我假设删除规则仅存储在Core Data模型中,而不存储在持久存储文件中.

为了验证这一点,我从2个核心数据模型创建了2个存储文件,这些模型具有相同的实体,但删除规则不同.将NSStoreModelVersionHashes在持久性存储metadata字典是相同的.

事实上,两个SQLite文件都与"Z_METADATA"表中"Z_UUID"的唯一例外相同,后者是NSStoreUUID持久性存储文件的.

此外,addPersistentStoreWithType:...如果加载的商店的版本哈希值与模型中的哈希值不同,则会失败.

因此,更改删除规则不应成为问题.