코어데이터 변경 및 마이그레이션

코어데이터 모델을 변경하고 마이그레이션을 하지 않았더니 다음과 같은 에러가 발생했습니다. 코어데이터를 처음 사용하는 것이라 마이그레이션을 해야한다는 것 조차 모르고 그냥 변경했더니 에러가 주르륵...
일단 급한대로 시뮬레이터에 설치된 앱을 지웠더니 에러는 사라졌습니다. 매번 코어데이터를 변경할 때마다 앱을 지우고 다시 깔 수도 없고 특히 이미 배포해 버린 후라면 유저들에게 일일이 앱을 지우고 다시 설치해달라고 할 수 없으니 코어데이터 모델을 변경하는 법을 알아봅시다.
새로운 모델 버전 추가
Add Model Version
Editor -> Add Model Version 을 선택하고 이름을 버전 2라는 의미로 기존 모델 명에 v2를 추가하여 생성합니다.


그러면 다음과 같이 ---v2.xcdatamodel이 생성된 것을 볼 수 있습니다.

Update Model Version
그 다음으로 할 일은 새로 생성한 ---v2.xcdatamodel을 선택 후 우측 Inspectors를 눌러 Model Version을 새로 생성한 MiniVibe v2로 변경해 줍니다. 여기서 MiniVibe는 제가 설정한 이름이고 여러분이 생성한 모델 명의 버전 2를 선택하면 됩니다.

그러면 다음과 같이 녹색 체크박스가 ---v2.xcdatamodel로 이동하였습니다. 이제부터 코어데이터 모델을 변경하면 됩니다.

Change Attributes Name
만일 Attribute Name을 변경하고 싶으면 해당 Attribute를 선택한 후 우측 하단에 보이는 Renaming ID 에 기존의 Attribute Name을 기입하고 원하는 이름으로 변경하면 됩니다.

Add Mapping Model
위의 작업을 마치고 다시 앱을 실행하면 짜잔 에러가 발생합니다.

모든 변경이 마무리되면 Mapping Model을 추가해줘야 합니다.
command + n을 눌러 새로운 파일 생성하기를 실행시킵니다. iOS에서 Mapping Model을 선택 후 Next를 누릅니다.

그 다음 Source Data Model은 이전 xcdatamodel을 선택합니다.

Target Data Model은 새로 생성한 ---v2.xcdatamodel을 선택합니다.

그 다음 이름을 정하고 생성한 후 프로젝트를 빌드하여 앱을 실행시키면 에러 없이 잘 실행됩니다.🌝

참고
'iOS > iOS' 카테고리의 다른 글
| iOS) gitignore 적용하기 (0) | 2021.01.13 |
|---|---|
| iOS) 서버와 데이터 통신을 위해 URLRequest 작성하기 (0) | 2020.12.16 |
| iOS) Build input file cannot be found 에러 해결 (0) | 2020.11.07 |
| iOS) NavigationBar의 Border 지우기 (0) | 2020.10.09 |
| iOS) UITableView로 채팅 UI 만들기(1) (0) | 2020.09.23 |