16

migration rules在更改deletion rulea的情况下,我一无所获managedObjects relationship

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

因此,我创建了一个new version of my coredata model但没有任何轻量级迁移,它仍然有效。因此,如果我应该完成添加模型的新版本,或者更改删除规则(例如 from cascadeto nullify)不会影响/不需要任何迁移,我会很担心。

有什么建议么?

4

1 回答 1

21

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

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

为了验证这一点,我从 2 个具有相同实体但删除规则不同的 Core Data 模型创建了 2 个存储文件。NSStoreModelVersionHashes持久存储metadata字典中的 是相同的。

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

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

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

于 2013-01-08T19:15:45.630 回答