核心数据:从旧数据库导入值

Posted

技术标签:

【中文标题】核心数据:从旧数据库导入值【英文标题】:Core Data: Import values from old database 【发布时间】:2014-03-12 06:27:49 【问题描述】:

我正在升级当前版本的词典应用程序。新版本的数据库具有新架构并预填充了新数据。

但是,对于在 3 个实体中找到的大约 12000 条记录,我想从用户版本的数据库中添加一个属性值。

编辑:这些是在应用程序使用过程中创建的值,所以我不能简单地覆盖以前的数据库。我希望可以加载新数据库,然后使用用户版本中的数据更新某些值。

我应该怎么做?

我需要将具有不同模型版本的字典的两个版本加载到内存中并进行传输。是这样吗?

【问题讨论】:

【参考方案1】:
    您需要执行核心数据轻量级迁移。如果需要,请在网上查看教程 - 非常简单 您可以在项目中保存一个 sqlite 或 xml(取决于数据大小),其中包含要更新的数据 - - 您可以从自己的 Web 服务下载所需的更新。

【讨论】:

感谢您的回复。对于 1,架构差异太大。对于 2. 我需要从用户的数据库版本中获取值,因为它们是在使用应用程序期间生成的。 您的意思是我应该分离预填充数据库的所有更改并在迁移到新架构后添加它们吗?当应用程序更新并添加它们时,我不能以某种方式提取我所追求的属性值吗? 您是在编写企业临时分布式应用程序(仅限于一家公司)还是消费者应用程序?如果是企业级,分两步管理迁移很容易,如果是消费者应用,则必须一次性管理迁移。 这是您的标准 iTunes ios 应用程序。不分离用户数据是我的错误。我对原始数据库的需求很少。架构发生了很大变化,大部分数据(除了单词本身)都发生了变化。 您知道您可以做很多事情,并且仍然可以进行轻量级迁移。检查文档!对您来说最重要的事情是:不要更改您拥有所需数据的模型部分,然后在迁移完成后,将此数据移动到架构的新部分并从旧部分删除数据。

以上是关于核心数据:从旧数据库导入值的主要内容,如果未能解决你的问题,请参考以下文章

cakephp 从旧数据值 + 新值保存更新数据

核心数据版本控制和迁移

如何将现有的非文档核心数据存储转换为 uimanageddocument?

在数据导入期间处理两个非常相似的类的最佳方法

迁移测试中最重要的一点,经常被忽略?

在 Swift 中将 JSON 字典导入核心数据