2013-08-19 54 views
0

我有一個應用程序(說版本1.0),這是使用核心數據,現在我已經更新應用程序使用SQLite和新的更新我根本不使用核心數據(我們將它稱爲版本1.1),但是我保留了我的數據庫的名稱和表中的所有列名稱類似於以前的核心數據應用程序。從核心數據遷移到應用程序的新更新

我的查詢是,如果用戶更新到正在使用sqlite的新版本(1.1),它會有什麼主要或次要的影響。它會有某種dataloss或任何崩潰,如果是的話請通過提供任何鏈接或建議指導我

爲了避免dataloss我打算從塊核心數據傳輸數據到sqlite應用程序在本文中閱讀,所以我正在做這個權利,讓我知道如果我錯過了任何有價值的步驟。

Migrating user data stored in sqlite to core data in app upgrade

謝謝

+1

您是否嘗試過自己升級自己的應用程序來測試它? – Abizern

回答

-1

如果你的行動會糾正和語法,用戶willn't丟失任何數據。 我怎麼理解,在你的下一個版本的應用程序中,你將通過任何sqlite框架來管理數據,那麼你只需要.sqlite數據文件。爲了得到它.sqlite文件路徑,您可以:

NSString *dataFilePath = [[[self applicationDocumentsDirectory] path] 
          stringByAppendingPathComponent: @"YourAppName.sqlite"]; 
    NSURL *dataFileUrl = [NSURL fileURLWithPath:storePath]; 

applicationDocumentsDirectory方法實現這樣的:

- (NSURL *)applicationDocumentsDirectory 
{ 
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 
} 

如果我的理解不正確的東西,把它寫在註釋中。

+0

感謝您的回覆,所以舊的數據將自動遷移到新的sqlite文件,或者我是否需要添加用於將數據從以前的版本遷移到新版本的代碼? – user2538944

+0

您需要添加代碼進行遷移。可能是我完全不理解你。我寫道,你如何才能獲得舊的.sqlite文件的路徑。您可以將此文件複製到您想要的位置並使用它。事實上,如果您使用核心數據,只需使用核心數據方法管理此文件的數據,並且如果您有.sqlite文件,則可以使用其他框架方法(而非核心數據框架)管理其數據。如果我的答案幫助你,請檢查它。 – Kepler

+0

例如:一旦我開發一個應用程序,我需要創建一些數據。我創建了一個包含核心數據框架的sqllite文件,用於管理此.sqlite文件的數據。我使用任何sqlite Framework的SQLiteAccess類。 – Kepler