我有,我剛剛添加的核心數據版本現有的iPad應用。我已經完成了文檔並遵循了詳細的步驟。現在,選擇我的新模式作爲當前版本的模型,並試圖在Xcode我的開發設備上運行它後,我收到以下錯誤:核心數據遷移 - 表已經存在
2012-03-28 07:35:42.137 DocsOnTap[2603:707] CoreData: error: (1) I/O error for database at /var/mobile/Applications/06EECF01-3598-4513-8A3A-BE4FD49EEBF6/Documents/.DocsOnTap.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3. SQLite error code:1, 'table Z_2TAG already exists'
我對我的模型所做的唯一的變化是在一個單一的加新的實體。我在我的模型中有一個名爲Tag的表 - 這似乎是錯誤所指的。
如果我恢復我目前的版本控制模式回到以前的模式版本,那麼我可以從我的Xcode開發設備上運行沒有錯誤我的應用程序。
我已閱讀,有可能試圖在開發設備上使用的核心數據遷移問題。不過,我只想測試這個過程,以確保當我們在Appstore中更新我們的應用程序時,遷移將按照我們客戶的預期進行。
您需要與原始模型要測試遷移每次安裝原有的應用程式。當您在dev中對新版本進行重大更改時,您必須刪除並重新安裝應用程序(除非您更新了dev版本)。 – Joe 2012-03-27 20:49:01
我不確定我是否理解你。我的原始模型在我的開發設備上有我的原始應用程序。我更改了現有的應用程序以添加核心數據版本控制,添加了新模型,使其成爲當前模型,並將實體添加到新模型中。然後我嘗試在dev設備上運行,並得到上述錯誤。 「版本變更」是什麼意思? – daveywc 2012-03-27 20:57:09
我在說,如果你使用datamodel(例如版本2.0),然後添加一個表格。您首次在版本1數據模型上運行代碼時,只要您添加了代碼,它就會自動遷移。現在,如果您停止代碼並對2.0數據模型進行更多更改,它將不會自動遷移,因爲您只是修改了相同的模型,並且可能需要刪除並重新運行應用程序。 – Joe 2012-03-28 02:38:28