2016-11-30 1 views
3

이것은 내가 Business 개체에 대한 소스 모델에있는 것입니다 :많은 변경에서 1 개의 변경으로 마이그레이션을 수행하는 방법은 무엇입니까?

enter image description here

를이 내가 Business 엔티티 destnation 모델이 무엇 :

enter image description here

당신은 내가 볼 수 있듯이 관계가 많아서 users에서 user으로 변경되었습니다.

는하지만 지금은 다음과 같은 오류가 있습니다

URL:file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/POSowner.sqlite options:{ 
    NSInferMappingModelAutomaticallyOption = 1; 
    NSMigratePersistentStoresAutomaticallyOption = 1; 
} ... returned error Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={sourceURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/POSowner.sqlite, reason=Cannot migrate store in-place: Validation error missing attribute values on mandatory destination relationship, destinationURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/.POSowner.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3, NSUnderlyingError=0x170458990 {Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={entity=Business, attribute=user, reason=Validation error missing attribute values on mandatory destination relationship}}} with userInfo dictionary { 
    NSUnderlyingError = "Error Domain=NSCocoaErrorDomain Code=134110 \"An error occurred during persistent store migration.\" UserInfo={entity=Business, attribute=user, reason=Validation error missing attribute values on mandatory destination relationship}"; 
    destinationURL = "file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/.POSowner.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3"; 
    reason = "Cannot migrate store in-place: Validation error missing attribute values on mandatory destination relationship"; 
    sourceURL = "file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/POSowner.sqlite"; 
} 
fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={sourceURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/POSowner.sqlite, reason=Cannot migrate store in-place: Validation error missing attribute values on mandatory destination relationship, destinationURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/.POSowner.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3, NSUnderlyingError=0x170458990 {Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={entity=Business, attribute=user, reason=Validation error missing attribute values on mandatory destination relationship}}}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6/src/swift/stdlib/public/core/ErrorType.swift, line 178 
2016-11-30 14:25:43.070185 POSowner[3474:513840] fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={sourceURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/POSowner.sqlite, reason=Cannot migrate store in-place: Validation error missing attribute values on mandatory destination relationship, destinationURL=file:///private/var/mobile/Containers/Shared/AppGroup/00C2A6C6-8149-4CF7-95E1-6ABD8A2B3B57/.POSowner.sqlite.migrationdestination_41b5a6b5c6e848c462a8480cd24caef3, NSUnderlyingError=0x170458990 {Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={entity=Business, attribute=user, reason=Validation error missing attribute values on mandatory destination relationship}}}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.58.6/src/swift/stdlib/public/core/ErrorType.swift, line 178 

을하고 그 문제를 해결하기 위해 어떻게 해야할지 모르겠어요. 어떤 아이디어?

 
static func mr_setupCoreDataStack() { 

    guard NSPersistentStoreCoordinator.mr_default() == nil else { 
     return 
    } 

    let managedObjectModel = NSManagedObjectModel.mr_default() 
    let persistentStoreCoordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel!) 

    var storePath = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: SharedGroupName) 
    storePath = storePath!.appendingPathComponent("POSowner.sqlite") 

    let options = [NSMigratePersistentStoresAutomaticallyOption: true, NSInferMappingModelAutomaticallyOption: true] 

    try! persistentStoreCoordinator.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: storePath, options: options) 

    NSPersistentStoreCoordinator.mr_setDefaultStoreCoordinator(persistentStoreCoordinator) 
    NSManagedObjectContext.mr_initializeDefaultContext(with: persistentStoreCoordinator) 
} 

답변

0

가장 간단한 솔루션은 현재 데이터베이스를 제거하고 MagicalRecord 어떤 마이그레이션하지 않고 새로 만들 수 있도록하는 것입니다 :

이 내가 설정 핵심 데이터 스택 방법이다. 오직 ONCE 만 기억하십시오.

static func mr_setupCoreDataStack() { 

    var storePath = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: SharedGroupName) 
    storePath = storePath!.appendingPathComponent("POSowner.sqlite") 
    try! FileManager.default.removeItem(at: storePath!) 

} 
관련 문제