데이터 마이그레이션 개념은 시간이 지남에 따라 유지해야 하는지를 이해하는 것이 중요합니다. 왜냐하면 결국 적어도 일부는 변경하려고하기 때문입니다.
이상형은 이전 데이터 모델에서 새 모델로의 마이너 변환이 자동으로 이루어지는 Lightweight Migration입니다. 문서에서 언급 한 바와 같이,이 변경 사항이있는 경우 자체 돌볼 수 : 새로운 속성의
- 간단한 추가
- 비 선택적 속성은 선택 사항
- 옵션 속성 비되고되고 옵션, 엔티티 이름 바꾸기 기본값
을 정의하고 또는 속성도 간단하고 거의 자동입니다.
새로운 것 또는 제거 된 엔티티, 새롭거나 제거 된 또는 변경된 관계 등 모든 것이 털이 있습니다. 믿을 수 없을 정도로 어렵지는 않지만, 더 많은 작업이 필요하며 실패 할 여지가 더 많습니다.
이와 같이 잠재적 인 변경 가능성에 대한 약간의 추측은 사전에 작은 흔들림 방을 제공하는 것이 더 쉽고 효율적일 수 있습니다. 이론적이지만 현재 사용되지 않는 관계를 너무 많이 사용하는 경우 분명히 현재 시스템 속도를 늦추고 잠재적으로 아무 이유없이 발생할 수 있습니다.
상당의 가치가 있습니다.
버전 1.0을 릴리스하고 v 1.1에서 내 CoreData (.xcdatamodel)에 추가/제거/이름 변경과 같은 사소한 업데이트를하면 다운로드 할 때 영향을받지 않습니다. v1.0의 저장된 데이터는 그대로 유지되어야합니다. 그 맞습니까? – hmthur
몇 가지 간단한 규칙을 따르면됩니다. 기본적으로 변경을 수행 할 때마다 조정 된 새 모델을 추가하지만 이전 모델을 그대로 두는 것이 좋습니다. 결과적으로 사용자가 두 번째 변경 사항을 사용하여 새 릴리스 또는 그 이후의 버전을 다운로드하면 Core Data가 마이그레이션을 수행하여 필요에 따라 기존 데이터를 변환합니다. Lightweight Migration이 자동으로 처리 할 수있는 변경 사항 이외의 변경 사항은 잠재적으로 많은 버전의 코드를 수동으로 변경해야한다는 것을 의미합니다. 다시 말하지만, 유지할 수있는 많은 코드가 있습니다. –