나는 raywanderlich.com의 기사를 따랐지만 가져 오기 및 내보내기를 위해 이메일을 사용합니다.
사실 내 .sqlite 파일을 압축하고 .abc (앱 고유의 확장 프로그램 사용) 파일의 확장자 이름을 바꾸어 내보내기를 구현했습니다. 이 방법으로 사용자는 확장자를 알지 못하므로이 파일을 편집하여 손상 될 가능성이 적습니다. 그리고 가져 오기 위해 파일을 압축 해제하고 기존 모델을 바꿉니다. 여기에서 필자는 기존 데이터를 가져온 파일로 대체합니다. 나는 하나의 응용 프로그램에서 그것을 사용했습니다. 그리고 아무 불평도. 확장 기능을 알 수없는 경우 사람들은 거의 편집하지 않습니다.
이전 데이터 모델 인 경우 핵심 데이터 마이그레이션을 처리 한 AFAIK는 이전 모델을 새 모델로 마이그레이션해야합니다.
가져 오는 중에 파일의 유효성 검사와 관련하여 .sqlite 파일의 유효성을 검사 할 수 없다고 생각합니까? 유효성을 검사하려면 .sqlite 파일을 열고 읽어야하며 읽으려면 스키마와 일치해야합니다. 손상된 경우 응용 프로그램이 충돌합니다. 예외를 잡아서 오류 메시지를 던지기 만하면됩니다. 사용자가 어떤 .sqlite 뷰어를 열려고되지 않을 수도 있습니다
또 다른 방법
- 는 .DB 같은에 .sqlite 파일의 이름을 바꿉니다.
- xml 또는 json으로 내보내기. 이 방법으로 가져 오기 파일의 유효성을 검사 할 수 있으며 가져 오기 중에 기존 데이터를 바꾸는 것이 아니라면 쉽습니다.
장점 1. 간단한 방법으로 xml 또는 json과의 변환을위한 압축 라이브러리 또는 추가 방법이 필요하지 않습니다.
단점
- 그리고 그냥 가져 오는 동안 기존 데이터를 교체하지 않으면, 당신은 많이 할 수있어. 이 엔티티를이 .sqlite에서 다른 엔티티로 복사해야합니다. 이 경우 단순히 json 데이터를 emport 및 파일 확장명을 바꿉니다. 가져 오는 동안 나는 json을 파싱하고 관리되는 객체 컨텍스트를 생성/업데이트합니다. 이 json 경우에는 UUID를 만들어 각 레코드를 고유하게 식별합니다.
.sqlite 생성 된 코어 데이터는 .sqlite 파일이 아니므로 sqllite 뷰어로 열려고하면 사용자가 놀라게됩니다.
일단 파일이 앱에서 사라집니다. 우리는 그것이 어떻게 사용되고 있는지를 통제 할 수 없다. 사용자가 손상된 파일을 가져 오면 오류 메시지가 표시됩니다.
희망이 도움이됩니다.