在iOS应用程序中同步核心数据数据库

时间:2011-03-01 20:32:44

标签: iphone core-data core-data-migration

我对核心数据迁移存有疑问。

假设我有一个应用程序,它在表A中有一些预定义的值。我希望将它与另一个数据库同步,使用表B,这样当新记录添加到B时,该记录应该添加到我的表A.

我知道使用Core Data迁移,当我向表中添加列时,我将能够在添加列之前访问先前存储在旧表中的值。

我想知道如何使用另一个表中添加的记录更新我的表。

更新

来自以下评论:

  

我想到的问题是......   我想发布我的更新   应用程序。我坚持如何更新   现有的核心数据库也是如此   存储用户输入的数据。我   需要做的是更新几个   记录并保留当前用户   数据。我该怎么做?

1 个答案:

答案 0 :(得分:5)

核心数据不是SQL。实体不是表格。对象不是行。列不是属性。核心数据是一个对象图管理系统,可能会或可能不会持久保存对象图,并且可能会或可能不会使用远远落后的SQL来执行此操作。试图用SQL术语来思考核心数据将导致你完全误解核心数据并导致更多的悲伤和浪费时间。

那种方式就是疯狂。

听起来您实际上并不想迁移,因为Core Data中使用了该术语。核心数据中的迁移意味着从数据图的持久存储的早期版本迁移到更新版本的存储库。

E.g。在1.0版本中,您有一个实体Person,其属性为firstNamelastName。应用程序发布后,您希望更新到2.0版本并向phoneNumber实体添加Person属性。您将使用迁移将用户的现有对象图和持久存储更新为新对象图。

如果通过“table”实际上是指实体,那么您可以在关系中将实体链接在一起,以便他们可以相互观察。如果“table”表示数据模型或持久存储,则答案更复杂。它可以使用配置,获取的属性,UUID等来完成,但是在跳过所有这些环节之前,您必须了解您真正需要做的事情。