2011-08-11 6 views
0

출시 된 앱의 핵심 데이터 모델의 이전 버전이 있습니다. 이제 다음 버전의 앱에서 코어 데이터 모델을 새 모델로 마이그레이션하려고합니다. 모델의 새 버전으로 실제로 마이그레이션하기 전에 이전 모델에서 속성 값을 가져 오는 방법이 있을지, 또는 마이그레이션이 수행되는지 여부를 알 수있는 방법이있을 수 있습니다.핵심 데이터 버전 및 이전

답변

2

마이그레이션 할 때 핵심 데이터는 실제로 기존 값을 이동합니다. 일부 속성을 추가하거나 제거하는 것과 같이 상대적으로 간단한 마이그레이션을 수행하는 경우 Core Data는 최대한 원활하게 이동하도록 최선을 다합니다. 대부분의 경우 새 모델을 설정하는 것 외에는 변경할 필요가 없습니다. 자세한 내용은 my answer here을 참조하십시오.

+0

+1 마이그레이션은 실제로는 기존 영구 저장소를 새로운 버전의 데이터 모델에서 지시 한 새로운 구조로 다시 작성하는 프로세스입니다. – TechZen

0

예, 가능합니다.

이전 모델에서 속성 값을 가져 오려면 사용자 정의 엔티티 마이그레이션 정책 (NSEntityMigrationPolicy 하위 클래스)을 만들어야합니다. 그런 다음 -createDestinationInstancesForSourceInstance:entityMapping:manager:error:에서 원본 인스턴스를 받게되며 원본 인스턴스에서 대상 인스턴스를 만드는 방법은 전적으로 사용자에게 달려 있습니다.

주어진 상점이 상점 조정자 모델과 호환되는지 확인하는 방법이 있습니다 : -[NSManagedObjectModel isConfiguration:compatibleWithStoreMetadata:].