모델이 Version
입니다. 엔티티 passPhrase
이 Version
인 경우 새 엔터티 passPhrase
Home
모델로 마이 그 레이션해야합니다.대상 엔티티 모델이 방금 생성 된 Coredata에서 엔티티를 마이그레이션하는 방법
그러나 Home
모델은 새 버전의 데이터베이스에 도입되었습니다. 그것은 이전에 존재하지 않았다 xcdatamodel
.
Version.passPhrase to Home.passPhrase
모델이 Version
입니다. 엔티티 passPhrase
이 Version
인 경우 새 엔터티 passPhrase
Home
모델로 마이 그 레이션해야합니다.대상 엔티티 모델이 방금 생성 된 Coredata에서 엔티티를 마이그레이션하는 방법
그러나 Home
모델은 새 버전의 데이터베이스에 도입되었습니다. 그것은 이전에 존재하지 않았다 xcdatamodel
.
Version.passPhrase to Home.passPhrase
그리고 CoreData 마이그레이션의 황금률은 다음과 같습니다. :)
가벼운 마이그레이션을 사용하여 새 엔티티를 추가 한 다음 마이그레이션 스크립트를 사용하여 데이터를 이전하는 방법입니다.
Version
클래스 정의에서 passPhrase
속성을 삭제할 수 있지만 모델에 그대로 두어 이전 데이터에 계속 액세스 할 수 있도록해야합니다. 모든 사용자가 새 버전으로 업그레이드했거나 영구히 그대로 두었을 때가되면 나중에 언젠가는 정리할 수 있습니다.
[version valueForKey:@"passPhrase"]
를 사용하여 복사 중에 기존 값에 액세스 한 후 한 번 같은 방법으로
[version setValue:nil forKey:@"passPhrase"]
에게 그것을 명확 밖으로 복사하려면
코어 데이터에서 엔티티/모델 매핑 변경은 경량 마이그레이션에서 제공되지 않습니다. NSMigrationManager를 서브 클래 싱하고 사용자 정의 NSEntityMigrationPolicy를 구현하여 수동으로 처리해야합니다.
Apple은이 문제에 대해 거의 설명서를 제공하지 않습니다. 자세한 예제는 Custom Core data migration에서 확인하십시오. 희망이 도움이 될 것입니다.