2012-06-05 2 views
3

코어 데이터 마이그레이션 디버그를 사용하도록 설정하면 마이그레이션을 수행 할 때 변경된 해시가있는 세 개의 엔터티 (2, 3, 4)가 예상대로 표시됩니다. 엔티티 1은 변경되지 않고 설명을위한 것입니다.핵심 데이터 매핑 모델 소스 모델 버전 해시와 일치하지 않는 버전 해시

메타 데이터를 저장 (소스 모델) :

Entity1 = <67852e01 ...>; 
Entity2 = <2b68bba5 ...>; 
Entity3 = <58babd8d ...>; 
Entity4 = <1c694c80 ...>; 

현재 모델 (대상 모델) :

Entity1 = <67852e01 ...>; 
Entity2 = <260e4d68 ...>; 
Entity3 = <13360b6f ...>; 
Entity4 = <16513e1b ...>; 

다음으로, 맵핑 모델을 만들 수 있지만 맵핑 모델의 해시가 다릅니다 실제 모델의 사람들 :

매핑 모델 원본 해시 :

Entity1 = <67852e01 ...>; 
Entity2 = <2b68bba5 ...>; 
Entity3 = <d66bed18 ...>; // !!! 
Entity4 = <2c56997a ...>; // !!! 

매핑 모델 대상 해시 :

Entity1 = <67852e01 ...>; 
Entity2 = <260e4d68 ...>; 
Entity3 = <cb08343c ...>; // !!! 
Entity4 = <1bc2cf8c ...>; // !!! 

매핑 모델은 실제 매장의 해시 다른 해시로 생성 될 수있는 이유는 무엇입니까? 이 question을보고 매핑 모델의 모델을 업데이트하려고 시도했지만 작동하지 않았습니다.

답변

4

마지막으로 해결 된 솔루션은 해당 엔티티가 제거 된 새 모델 버전을 만든 다음 엔티티가 다시 도입 된 다른 새로운 모델을 만드는 것이 었습니다.

+0

새로운 xcdatamodel 버전을 만들었습니다. 삭제하고 새 사본으로 교체 한 두 가지 모델이 있습니까? – ray

+0

Xcode의 "새 모델 버전 ..."메뉴 항목을 사용하여 새 모델 버전 ("X"라고 함)을 추가했습니다. X에서 문제 엔티티를 제거한 다음 두 번째 새 모델 버전 (Y)을 추가하여 다시 추가했습니다. 기본적으로 X는 엔티티를 정리하는 데 사용되는 중간 모델 버전입니다. –