【问题标题】:Importing a MySQL schema to Xcode as a CoreData Data Model将 MySQL 模式作为 CoreData 数据模型导入 Xcode
【发布时间】:2011-04-24 21:39:33
【问题描述】:

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

有没有办法(工具、流程)导入CREATE 语句,这样我就不必“手动”构建模型?

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

【问题讨论】:

    标签: mysql xcode sqlite core-data migration


    【解决方案1】:

    实际上,我也非常需要这个功能,所以我决定制作一个 OSX 实用程序来做到这一点。 但是...然后我在 Mac Appstore 中找到了一个实用程序(部分)解决了这个问题(它免费了一段时间,我不知道它的当前状态)。它被称为 JSONModeler,它所做的是解析 json 树并自动生成 coredata 模型和所有派生的 NSManagedObject 子类。所以一个典型的工作流程是:

    1. 将表从 MySQL 导出到 xml
    2. 将 xml 转换为 json
    3. 向实用程序提供该 json 并获取您的 coredata 模型

    现在,对于更复杂的场景(关系等),我想您必须调整您的 xml,以便它反映有效的对象树。然后 JSONModeler 将能够重新创建该树并将其导出为 coredata。

    【讨论】:

    • 我是 JSON Modeler 的开发人员,并且仍在积极开发中。我希望我可以做一个 XML 工具来做同样的事情,但是 XML 现在太复杂了(属性属性和子子新类是什么?如果有几个不同类型的子节点会发生什么?那是如何映射的?)。如果我可以在 JSONModeler 中添加任何东西来帮助解决这些问题,请告诉我。
    • 搞砸 - 我将开始研究该工具的 XML 部分。擦亮眼睛。
    • 太棒了...我想问你这个确切的功能,但应用商店上的链接(支持链接)重定向到下载该工具的页面。无论如何,xml支持会很棒!谢谢!
    【解决方案2】:

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

    Core Data 确实使用了专有的 sqlite 模式,原则上您可以复制它,但我不知道有谁以稳健的方式取得了成功,除了非常简单的 SQL 数据库。即使他们这样做,它的工作量也很大。此外,不支持这样做,并且架构可能会在某处中断。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-03
      • 2012-04-02
      • 2012-05-10
      • 2011-02-27
      • 2011-04-13
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多