2010-10-13 56 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