2012-06-14 3 views
0

CoreData 기반에 데이터가 채워진 스토어에 앱이 있습니다. 데이터베이스를 미리 채우기 위해 응용 프로그램 데이터가있는 .sqlite 파일을 생성했습니다.Coredata 기반의 행을 마이그레이션해야합니까?

134 Martin Developer 
256 John Boss 
399 Mister Someoneelse 

그래서 나는 399 일으로 371 선을 대체처럼

은 테이블 사람 예를 들어, 나는 내 응용 프로그램의 새 버전에서

134 Martin Developer 
256 John Boss 
371 Doe  Somebody 

이, Person 테이블 보인다 .

이전 앱에 새 앱을 설치할 때를 제외하고는 정상적으로 작동합니다. 이 경우 데이터가 전혀 변경되지 않습니다. 마이그레이션 문제처럼 보이지만 데이터베이스 구조는 완전히 동일합니다. 행만 변경되었습니다.

마이그레이션 문제가 있습니까?

+0

모델이 이전과 동일하면 마이그레이션이 필요하지 않습니다 ... 간단한 업데이트입니다. 코드를 게시하려고 시도 할 수도 있습니다. 사람을 업데이트하는 중 ... –

+0

코어 데이터에서 테이블과 행을 어떻게 처리합니까? Core Data Store를 실제로 볼 수있는 수준은 아닙니다. –

+0

@Flex_Addicted : 저는 엄청난 규모의 응용 프로그램 (광산이 아닙니다)에서 작업하며, 불행히도 "무언가"라고 말할 수있는 3 ~ 4 줄의 코드를 표시 할 수는 없습니다 ... – Martin

답변

1

미리 채워진 데이터베이스가있는 경우 일반적으로 을 장치에서 처음 실행할 때 응용 프로그램 문서 디렉터리에 복사합니다. 아마도 사용자 데이터를 데이터베이스에 저장하려고하고 sqlite 저장소는 쓰기가 가능하도록 응용 프로그램 문서 디렉토리에 있어야합니다.

그래서 복사를하지 않았다면 먼저 이것을 구현하십시오.

그런

  • 를 삭제
    1. 문제의 레코드를 검색, 질문의 변화를 할 (당신이 당신의 데이터 모델을 변경하지 않은 가정)
    2. 는 교체를 삽입
    3. 저장
  • +0

    네, 맞습니다. 나는 sqlite 파일이 처음으로 내 문서 디렉토리에 복사 된 것을 발견하지 못했다. (나는이 앱의 첫 번째 개발자가 아니다.) 데이터를 편집 할 수있는 이유가 지금은 더 잘 이해됩니다. – Martin