2010-04-27 121 views
1

我這是對sqlite的使用核心數據的應用程序, 現在我有有一些數據庫結構的變化說添加新表iPhone應用程序更新(在sqlite的使用核心數據)

一個更新,我知道當應用程序得到更新,它只更新應用程序二進制文件,文檔目錄中的任何內容都不會被更改

當應用進行了更新,並在第一時間launchs和運行

[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 

它會發現在sqlite的數據模型和數據庫結構之間的差異,將拋出一個異常,並退出。

錯誤:「用於開實體店的模式是用來創建存儲的一個不兼容」

所以,在這裏任何人都可以給我一些想法如何時,有一個數據庫結構的變化來更新應用程序?

我想我們可以在第一次啓動更新時運行DB腳本來創建新表。

但是,如果還有其他更改,例如更改某些字段的類型或刪除某些字段,並且我們需要遷移舊數據,這實在令人頭疼。 在這種情況下,唯一的方法是創建一個新的應用程序?

有沒有人試過類似的東西?

回答

7

您需要對您的數據模型進行版本處理,以處理您添加的任何新字段。蘋果已經在這方面詳細描述了documentation。如果你只是添加字段,這很容易。我沒有嘗試刪除字段,但我想它也很簡單。一旦你進入了變化領域,你會引入一點複雜性,但這並不難。

+0

感謝您引導我朝着正確的方向發展,因爲我對新版本有非常複雜的變化,所以我不得不這樣做,因爲它只是賣了很少的副本,我已經從銷售中刪除了它在應用商店。 – owen 2010-04-28 01:12:00

相關問題