Tag: 核心数据迁移

如何简单地删除旧的核心数据并重build新的数据?

我试图将coreData迁移到新版本,我正在执行以下步骤: 如果您有一个应用程序已经提交到正在使用较早的模型版本的应用程序商店,添加一个新的模型版本(selectname.xcdatamodeld然后编辑器 – >添加模型版本)进行任何更改之前。 然后,从核心数据选项卡添加一个新文件,如映射模型select,源模型(提交的应用程序使用的模型版本)目标模型(您已经完成更改的模型版本) 资源 但我的数据主要是图像和应用程序崩溃,因为它需要大量的内存。 所以我想删除旧的数据模型及其数据,并在用户更新应用程序时创build空的新模型数据。 这个怎么做?

Core Data轻量级迁移有多less个迁移步骤?

我使用核心数据和轻量级迁移为我的iPhone应用程序。 假设我已经为应用程序创build了3个版本的数据模型。 一个用户安装了我的应用程序的早期版本,其数据模型版本仍然是v1。 当用户将应用程序更新到具有数据模型版本v1,v2和v3的最新版本时,更新过程中发生了什么? sqlite数据库首先从v1迁移到v2,然后从v2迁移到v3? 或者它只是从v1跳到v3?

核心数据迁移失败

我的应用程序最近在应用程序商店崩溃,因为我没有迁移数据。 所以我正在关注核心数据迁移的这个教程 ,但它似乎并没有工作: 1.我为Core Data创build了一个新的模型版本并将其设置为当前版本… 2.我添加了下面的代码: – (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (_persistentStoreCoordinator != nil) { return _persistentStoreCoordinator; } NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Planner.sqlite"]; NSError *error = nil; _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; NSDictionary *options = @{ NSMigratePersistentStoresAutomaticallyOption : @YES, NSInferMappingModelAutomaticallyOption : @YES }; if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) { NSLog(@"Unresolved error […]

Xcode核心数据:将现有的XML更改为Sqlite(NSXMLStoreType为NSSQLiteStoreType)

在我的第一个应用程序中,我在持久性商店协调员中使用了一个NSXMLStoreType。 [storeCooordinator addPersistentStoreWithType:NSXMLStoreType configuration:nil URL:storeURL options:options error:nil]; 现在,我想更改为NSSQLiteStoreType: [storeCooordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:nil]; 应用程序崩溃,如果我只是改变商店types。 那我该怎么办? 我可以做一次吗? 检查旧商店是否存在 如果是转换成sqlite和 之后删除旧的XML存储? 我不知道如何将其转换为SQLite。 模型是一样的。 编辑&答复 我使用这个解决scheme迁移一次数据库( 感谢Volker ) //-> applicationFilesDirectory is the url to the documents directory NSURL* oldURL = [applicationFilesDirectory URLByAppendingPathComponent:@"DBName1.xml"]; NSURL* newURL = [applicationFilesDirectory URLByAppendingPathComponent:@"DBName2.sqlite"]; NSError *error = nil; NSFileManager * fileManager = [NSFileManager defaultManager]; […]

核心数据手动迁移

我正尝试在我的项目中迁移到一个完全不同的新模型。 对于轻量级迁移而言,这些更改太多了,我认为最好的方法是遍历顶层对象,并自己设置所有的属性和关系。 如何将迁移过程设置为完全手动的? 我已经看着NSMigrationManager似乎需要一个NSMappingModel。 我见过的唯一的示例和教程使用inferredMappingModelForSourceModel:destinationModel:error:我不能使用,因为它无法推断映射模型。 我在正确的道路上,如果是这样,我怎么能在代码中完全手动创build一个映射模型? 谢谢您的帮助。

核心数据轻量级迁移:无法find或自动推断迁移的映射模型

所以我创build了我的数据模型的一个新版本,并做了一个以前的可选字段非可选(给它一个默认值)。 根据文档,这应该意味着我的迁移有资格进行轻量级的自动迁移。 我还添加了这样的选项,当我打开商店时,也可以根据文档: NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil]; 但是,当我的应用程序启动时,出现以下错误:“无法find或自动推断迁移的映射模型”。 有谁知道这里的问题可能是什么? 任何帮助表示赞赏…谢谢!

核心数据迁移:如何删除核心数据栈?

我的计划是删除旧的核心数据堆栈( NSManagedObjectModel .momd文件和NSPersistentStore .sqlite文件),因为: 我没有Core Data迁移的经验。 新的.xcdatamodel模式与旧模式完全不同。 我可以安全地删除用户的旧数据,因为它们都存储在我们的服务器上,新的应用程序无论如何都会从我们的服务器下载最新的数据。 在这种情况下,完全删除是迁移的最佳途径?

如何在轻量级核心数据迁移之后为现有实体的新属性设置默认值?

我已经成功完成了我的核心数据模型的轻量级迁移。 我的自定义实体车辆接收到一个新属性'tirePressure',它是一个doubletypes的可选属性,默认值为0.00。 当“旧”车辆从商店(在迁移发生之前创build的车辆)获取时,其“轮胎压力”财产的价值为零。 (这是预期的行为?) 所以我想:“没问题,我只是在Vehicle类中做这个:” – (void)awakeFromFetch { [super awakeFromFetch]; if (nil == self.tirePressure) { [self willChangeValueForKey:@"tirePressure"]; self.tirePressure = [NSNumber numberWithDouble:0.0]; [self didChangeValueForKey:@"tirePressure"]; } } 由于“更改处理显式禁用” awakeFromFetch我认为调用willChangeValueForKey和didChangeValueForKey会标记'tirePresure'脏。 但他们没有。 每次这些车辆都从店里取出,“轮胎压力”尽pipe保存了上下文仍然是零。

核心数据:如何删除和重build数据存储?

我在iOS 7+应用程序中使用Core Data ,不需要保存用户数据,应用程序需要的所有数据都被请求服务,随时可以恢复。 所以,如果我在下一次应用程序更新中更改我的数据模型,那么在删除所有以前的数据并再次请求这些数据方面没有任何问题。 但是我不知道如何简单地用新的数据模型来取代之前的数据模型,而没有执行迁移,因为看起来我不需要这样做… 提前致谢

如何在Swift中做轻量级的CoreData迁移

我正在尝试我的第一个轻量级CoreData迁移。 我阅读了两个轻量级迁移指南。 都将代码添加到CoreDataStack类,修改像NSPersistentStoreCoordinator的variables,并添加: let mOptions = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true] 我的问题是,我有一个使用CoreData完美function的应用程序,但我没有那个类或类似的东西。 我的问题是 ,为什么这些项目假设我有这个课程,没有它,我可以实现轻量级的移植吗? 如果不是,我该如何添加? 更多信息,如果需要回答 在九月份,我使用CoreData构build了一个应用程序。 这是我第一次使用CoreData,并遵循这个Ray Wenderlich指南。 它工作得很好,我完成了应用程序,现在在商店。 现在我想开始对应用程序进行一些更改,包括新的CoreData属性和一些新的实体。 我读过,我需要设置一个新的模型版本。 我find了Ray Wenderlich指南,但它使用了我没有的CoreDataStack.swift文件: 令人沮丧的是,我使用他们的指南来设置CoreData,并且没有包含该文件! 然后我去做一个移民,他们假设我有。 我去寻找另一个轻量级的迁移方法,find了这个替代scheme ,它也引用了我从未构build到我的CoreData中的代码: lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = { // The persistent store coordinator for the application. This implementation creates and return a coordinator, having added the store for the application […]