2013-10-15 3 views
3

CoreData를 사용하는 iOS 앱이 있습니다. 애플 스토어에 살고있는 애플 리케이션은 내 모델의 V1을 가지고 있으며 이후 UI를 통해 새로운 모델을 추가하는 표준 기술을 사용하여 V2로 업그레이드했다.여러 모델로 핵심 데이터 이전

V2가있는 앱은 아직 생방송이 아니며 현재 사용되고있다. 몇 사람이 테스트에 사용했습니다. V2 모델에는 V3 모델이 추가로 변경되었습니다.

제 질문은 V2 및 V3 버전의 모델을 모두 사용하는 경우 업그레이드가 성공적으로 완료된다는 것입니다.

+1

필자가 아는 한, 응용 프로그램 내에서 '현재 버전'으로 표시된 코어 데이터 모델 버전을 하나만 가질 수 있습니다. 나는 당신이 알고 싶은 것이 V1에서 V3으로 그리고 V2에서 V3로 업그레이드 할 수 있는지 여부를 가정하고 있습니다. 이 대답은 모델 버전 간의 변경 사항과 작성한 명시 적 매핑 모델에 따라 다릅니다. 이러한 정보를 게시하면 도움이됩니다. –

+0

당신이 요구하는 것이 명확하지 않다 - 한 번에 앱에서 사용되는 여러 모델의 동시 버전이 작동 할 수 있지만 많은 노력이 필요합니다. 아마도 V3의 모델을 사용하여 라이브로 이동하고 V1 및 V2 사용자를 모두 업그레이드하고 싶습니까? – RyanR

+0

@JonathanArbogast가 맞습니다. 애플리케이션 당 하나의 모델이 아니라 모델 당 하나의 현재 버전을 가질 수 있습니다 (예를 들어, 각각 고유 버전이있는 두 개의 독립적 인 모델을 가질 수 있습니다). 업그레이드가 가능한지 여부를 확인하려면 https://developer.apple.com/library/ios/documentation/cocoa/conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html을 참조하십시오. 또한 경량 마이그레이션이 불가능한 경우 V2에서 V3로 마이그레이션하는 데 아무런 의미가 없습니다. 테스트 빌드 사이가 아닌 릴리즈 간 마이그레이션 수행 –

답변

1

여러 가벼운 마이그레이션을 수행 할 수 있습니다.

나는 내 모델의 V1을 가지고 있습니다. 그런 다음 V2에 대한 새로운 엔터티를 추가하고 현재 모델을 만들었습니다. 그런 다음 새 모델 V3을 추가하고 V2에서 생성 된 새 엔티티에 새 속성을 추가했습니다.

+0

이전 버전의 모델이 프로젝트에 남아 있다면 모든 것이 좋습니다. V1 모델을 제거했다면 문제가 생길 수 있습니다. – RyanG

관련 문제