Core Data Migration 将如何适用于两个项目?

Posted

技术标签:

【中文标题】Core Data Migration 将如何适用于两个项目?【英文标题】:How the Core Data Migration will work for two projects? 【发布时间】:2015-03-02 05:21:10 【问题描述】:

我正在开发一个使用核心数据的应用程序(一个应用程序已经在 AppStore 上运行)。好的,现在我想让它完全适用于 ios8 并且客户还要求我对 UI 及其结构进行良好的更改,所以我开始了一个完整的新项目并决定自己编写代码。一切正常,然后客户给我发电子邮件并确认,如果现有应用程序将得到更新,新版本的应用程序应该存储并从数据库中获取现有值。我在这里感觉很糟糕。

我知道核心数据迁移是可能的(我也读过this,但我对这个概念有些误解。

正如我所说,我开始了一个新项目,但是否可以添加新版本的模型? 我们的实体和属性名称不同。我按照我想要的方式命名它。 我们的型号名称相同。例如Somename.xcdatamodel 我的应用将更新为 AppStore 上的现有应用。

如何将现有的核心数据数据库迁移到新的?

这可能吗?怎么样?

对此的任何建议和帮助将不胜感激。

注意: 我看了这个问题Core Data Migration: How to delete the Core Data stack?,发现删除之前的模型没有问题?你有什么建议?

【问题讨论】:

检查这个问题它可能会帮助你解决你的问题。 ***.com/questions/5995231/… @jogshardik,谢谢,我会尽快检查。 【参考方案1】:

如果您需要迁移并保留现有数据,您应该阅读有关编写自定义策略Core Data Versioning Guide 的更多信息。完整阅读本指南,了解您的应用迁移属于哪个类别。 1. 轻量级迁移。 2. 或者您必须编写自己的自定义策略。

据我所知,从您提供的详细信息来看,这可能是一个轻量级迁移,您无需执行任何操作,只需将新版本添加到 xcdatamodel 和映射模型即可。如果没有,那么您必须编写自己的自定义策略和映射模型。

还要确保正确测试升级。

【讨论】:

您可以将旧版本文件添加到您的数据库中,然后创建从旧模型到新模型的映射,将您的新模型作为当前模型。如果只是实体中的命名更改,轻量级迁移会处理它。您当然应该阅读上面提到的 Apple 文档。它是版本控制的最佳资源。 这就是映射的全部内容。您必须在映射中提及旧属性名称。请阅读我上面提到的文件。这是最好的指南。您剩下的问题可以通过它来回答。

以上是关于Core Data Migration 将如何适用于两个项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PUT 请求添加到 RestKit + Core Data?

DMA(Data Migration Assistant)迁移SQLServer数据库

使用 Entity Framework Core 时,通过代码自动进行 Migration

适用MySQL Migration Toolkit 1.0 将oracle迁移到mysql中遇到的问题

text EF Core Tutorials with migration

EF Core 迁移错误:PositionalParameterNotFound,Add-Migration