2010-06-27 2 views
0

핵심 데이터 데이터 모델에 경량 마이그레이션을 사용합니다. 시뮬레이터에서 각 업데이트가 원활하게 진행되었습니다.한 번에 두 개 이상의 버전을 코어 데이터 마이그레이션이 작동하지 않습니까?

내 장치에서 각 마이그레이션을 하나씩 수행하지 않았습니다. 예를 들어 장치의 버전이 3이고 버전이 5였습니다. 시뮬레이터에서 3에서 4로 이동 한 다음 4에서 5로 이동했지만 장치가 3에서 5로 이동하려고 시도하면 표준과 충돌합니다. "원본 저장소의 모델을 찾을 수 없습니다."오류가 발생했습니다.

가벼운 마이그레이션 (즉, 사용자가 내 앱의 업데이트를 건너 뛸 수 없음)에 의존한다면 내 애플리케이션을 업데이트 할 수없는 것처럼 보일 수 있습니다.

이 경우인가요, 아니면 내가 다른 뭔가 잘못하고있는 것입니까?

답변

3

가벼운 마이그레이션은 누적 될 수 있습니다. 공식 버전 관리를 사용하지 않는 경우 특히 그렇습니다.

가벼운 마이그레이션이 주로 개발 목적으로 의도되었음을 항상 고객에게 말합니다. 버전 간 변경 사항을 해결할 수있는 소프트웨어에 의존하고 있습니다. 변화가 작고 간단할수록 소프트웨어가 더 잘 관리 할 수 ​​있습니다. 어떤 시점에서는 소프트웨어가 처리하기 위해 변경이 복잡해집니다.

공식적으로 버전을 지정하지 않으면 소프트웨어가 변경 사항을 파악할 수있는 한 원칙적으로 "버전"을 건너 뛸 수 있습니다. 실제로 마이그레이션 소프트웨어는 쉽게 혼란스럽고 실질적인 변화가있을 경우 중단됩니다.

배포의 경우 "전체 가중치"버전 이동을 항상 계획해야합니다. 이것은 많은 업데이트를 계획하는 경우 특히 그렇습니다. 소프트웨어가 버전 1에서 버전 5 이상으로 마이그레이션을 처리 할 수있을뿐만 아니라 둘 이상의 버전간에 마이그레이션을 처리 할 수있을 것으로 기대하십니까?

마이그레이션이 작동하려면 이전 모델 파일이 있어야한다는 것을 기억하십시오. 공식 또는 기타 버전을 건너 뛰려는 경우, 이전하려는 모든 이전 버전의 모든 모델 파일을 보유해야합니다. 버전 5에 대한 업데이트가 버전 3의 모델을 제공하거나 보유하지 않으면 기존 저장소를 마이그레이션 할 수 없습니다. 실제로 이는 각 버전을 이전 버전의 모든 모델 파일과 함께 제공한다는 의미입니다. 일반적으로 시리즈를 업그레이드하는 것이 더 쉽고 안전하며 최종 사용자는 그렇게하는 데 익숙합니다.

모델을 자세히 보지 않고 실제 문제가 무엇인지 말할 수는 없습니다. 간단한 마이그레이션으로 가벼운 마이그레이션 소프트웨어를 처리하기가 쉽습니다. 이 소프트웨어는 버전 5가 버전 3에 매핑되는 방식을 이해할 수 없습니다.

+0

기본적으로 버전 4의 엔티티에 텍스트 필드를 추가하고 버전 5의 숫자 필드를 동일한 엔티티에 추가했습니다. 어느 필드도 필요하지 않습니다. 그것은 아주 간단 해 보이고, 내가 변화를 만들 때마다 새로운 버전을 만들고 있습니다. 어쨌든 가벼운 마이그레이션은 프로덕션 환경에서 사용하기에 충분하지 않습니다. – davetron5000

+0

릴리스시 사용하지 않는 것이 좋습니다. 자동 코드 생성을 사용하여 런타임없이 운영 코딩 결정을 내릴 수 있습니다. 오류가 발생하면 사용자와 사용자가 엉망입니다. 기존 데이터베이스가 크지 만 릴리스 시간에 공식적인 마이그레이션을 수행하는 데 약간의 시간을 투자하여 많은 보안을 확보 할 수 있다면 개발을위한 시간 절약 도구입니다. – TechZen

관련 문제