更改后的代码并发布。现在,应用在启动时超时,同时将持久性商店协调员更新为新模型。想要知道迁移是否是事务性的,以便我可以制定如何解决问题。在超时之前迁移将通过迁移得到x%。核心数据(SQLite)手动迁移事务?
如果我只需要首先启动应用程序然后迁移事务。如果不是事务性的,我担心用户将只有部分迁移的模式。
背景
代码用来调用
persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
当数据库的新模式存在,预期它会失败。以前用户将被提示通过UIAlertView
更新数据库。然后将会调用以下语句。
[persistentStoreCoordinator_ addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:optionsDictionary error:&error]
如果initWithManagedObjectModel
失败,我决定运行第二行代码。除了这个语句在` - (NSPersistentStoreCoordinator *)persistentStoreCoordinator'方法中运行外,并不那么愚蠢,所以有时候应用程序在启动时会超时。
在这个阶段我不知道该怎么做。数据库是半映射到新模型还是仍然代表以前的模型?