2013-08-19 55 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