Перенос CoreData - удаление правил отношений

Я ничего не нашел о migration rules в случае изменения deletion rule a managedObjects relationship

Моя первоначальная модель coredata содержала объект с отношением. Правило удаления этого отношения было cascade. Мне пришлось изменить это поведение на Nullify.

Поэтому я создал new version of my coredata model, но без какой-либо облегченной миграции, и он все еще работает. Поэтому я хотел бы, если бы мне пришлось добавить новую версию моей модели, или если изменение правил удаления (например, от cascade до Nullify) не влияет на миграцию.

Любые предложения?

Ответ 1

Правила удаления определяют поведение Core Data во время выполнения: если один объект удален, другие отношения могут быть установлены в NULL, а также могут быть удалены связанные объекты.

Поэтому я предположил, что правила удаления хранятся только в модели Core Data, но не в постоянном файле хранилища.

Чтобы убедиться в этом, я создал 2 файла хранилища из двух моделей Core Data с идентичными объектами, но с разными правилами удаления. NSStoreModelVersionHashes в словаре постоянных хранилищ metadata были идентичны.

Фактически оба файла SQLite были идентичны с единственным исключением "Z_UUID" в таблице "Z_METADATA", который является NSStoreUUID файла постоянного хранилища.

Кроме того, addPersistentStoreWithType:... завершится с ошибкой, если хеш-версия версии загруженного хранилища отличается от хэшей в модели.

Поэтому изменение правил удаления не должно быть проблемой.