2010-10-13 38 views
2

我有一个现有的MySQL数据库,我想将架构导入Xcode并创建一个Core Data数据模型。将MySQL架构作为CoreData数据模型导入Xcode

有没有一种方法(工具,进程)导入CREATE语句,所以我不必“手工”建立模型?

作为中介步骤,我可以转换为SQLite,我不担心关系,外键等只是自动生成Entities(表)和Properties(列)。

回答

0

这里的问题是,实体不是表和属性不是列。核心数据是一个对象图管理系统,而不是一个数据库系统。差别很微妙但很重要。核心数据与SQL没有任何关系,它只是有时使用SQL作为其持久性选项。

核心数据确实使用专有的sqlite模式,原则上你可以复制它,但我不知道任何人谁已经成功的强大的方式,除了非常简单的SQL数据库。即使他们这样做,也需要很多工作。此外,这样做是不受支持的,并且架构可能会在某处断开。

最简单和最健壮的解决方案是编写一个实用程序应用程序来读取现有的数据库并创建对象图。您只需运行一次,无论如何您都必须创建数据模型,因此不需要太多时间。

2

其实我还需要这个功能,所以我决定做一个OSX实用程序来这么做。 但是 ...然后我在Mac Appstore中发现了一个实用程序,它可以(部分地)解决这个问题(它有一段时间是空闲的,我不知道它的当前状态)。它被称为JSONModeler它所做的是解析一个json树并自动生成coredata模型和所有派生的NSManagedObject子类。因此,一个典型的工作流程是:

  1. 出口从MySQL表为xml
  2. 将XML为JSON
  3. 订阅工具与JSON,让你的coredata模型

现在,对于更复杂的场景(关系等),我想你将不得不调整你的XML,所以它会反映一个有效的对象树。然后JSONModeler将能够重新创建该树并将其导出为coredata。

+0

我是JSON Modeler的开发人员,并且仍在积极开发中。我希望我能做一个XML工具来做同样的事情,但是XML现在太复杂了(是属性属性还是子类新类?如果有多个不同类型的子节点会发生什么?映射怎么样?)。如果有任何我可以添加到JSONModeler中来帮助解决这个问题,请告诉我。 – Rexeisen 2012-03-01 20:11:18

+0

拧它 - 我将开始工作在该工具的XML部分。保持你的眼睛去皮。 – Rexeisen 2012-03-01 20:26:48

+0

太棒了...我想问你这个确切的功能,但是appstore上的链接(支持链接)会重定向到下载该工具的页面。无论如何,XML支持将是伟大的!谢谢! – Alladinian 2012-03-02 11:47:28