首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心数据迁移需求

核心数据迁移需求
EN

Stack Overflow用户
提问于 2021-03-03 06:51:40
回答 1查看 120关注 0票数 1

我有几个关于核心数据迁移的问题,我似乎找不到答案。

  1. 我正在对我的核心数据模型文件做一个小小的修改.特别是将一些可转换属性中的“转换器”从空白更改为NSSecureUnarchiveFromData (以消除有关NSKeyedUnarchiveFromDataTransformerName的警告)。我是否需要创建一个新模型并为此进行轻量级迁移?或者这不会影响模型中的任何东西吗?
  2. 使用Xcode12.2,如果我更改模型(比如添加属性或新实体),并且不创建新的模型版本,只需运行应用程序.它不会坠毁的!过去,它总是抛出“无法找到源存储的模型”错误。最近有什么变化吗?还是我做错什么了?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-03 23:23:09

核心数据通过比较版本哈希来决定是否需要模型迁移。数据模型有一个,当您创建持久存储时,版本哈希将保存在存储文件中。任何时候,它们都是不同的,迁移是必要的。迁移之后,将更新存储文件的散列以匹配新模型。

版本散列唯一重要的事情是影响如何设置SQLite数据库的事情。如果更改某些内容意味着SQLite模式的更改,则版本哈希将发生更改。这不包括转换器名称。如果您对详细解释感兴趣,请在versionHashNSPropertyDescriptionNSAttributeDescriptionNSRelationshipDescription上查找该属性

您还可以添加您自己的版本哈希修饰符字符串,以强制版本哈希更改,如果您出于某种原因想要强制迁移。

对于简单的迁移,Core数据比过去更加宽容。默认情况下,带有自动映射模型生成的轻量级迁移是活动的(默认情况下,shouldMigrateStoreAutomaticallyshouldInferMappingModelAutomatically都是正确的)。除非您特别关闭它,否则轻量级迁移只在需要时发生。保持不同的模型版本仍然是一个好主意,如果只是跟踪项目随时间的变化,但如果你不这样做,它将经常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66452074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档