iOS 개발일지
1013 새싹 69회차 정리 - Realm Migration 본문
iOS 앱 개발자 데뷔 과정 69회차
#1. Migration
하드웨어, 소프트웨어, 네트워크 등 넓은 범위에서 사용되고 있는 개념으로, 현재 운영 환경으로부터 다른 운영 환경으로 옮기는 작업을 말한다.
데이터베이스에서는 스키마 버전을 관리하기 위해 마이그레이션을 사용한다.
- Schema Version
Realm 데이터베이스에서는 컬럼이 추가되거나 삭제될 때, Schema Version을 증가시키기만 하면 자동으로 마이그레이션이 이루어진다.
별도로 스키마 버전 넘버를 지정하지 않으면 realm의 기본값은 0이며, 마이그레이션을 진행 할 때는 항상 상위 버전으로 업데이트 해야한다.
더 복잡하게 스키마를 업데이트 해야 할 경우엔 migrationBlock을 활용해서 수동으로 마이그레이션 업데이트를 해야 한다.
- Current Schema Version : 스키마 버전 확인
현재 앱에서 사용하고 있는 스키마 버전을 확인할 수 있다.
- deleteRealmIfMigrationNeeded : 개발중 마이그레이션
앱을 디버깅하거나 개발할 때, 마이그레이션을 대응하는 것 대신 사용할 수 있는 옵션이다.
기존 스키마와 현재 스키마가 불일치 할 경우, 해당 옵션을 활용하면 마이그레이션이 필요할 때 자동으로 기존 스키마를 제거해준다.
릴리즈 버전에서는 절대!! 사용하면 안되므로, 해당 옵션을 사용했다면 릴리즈 전에 꼭 제거하도록 하자.
- Linear Migrations
마이그레이션 블록은 중첩하거나 건너뛰어서는 안된다.
모든 스키마 업데이트를 올바른 순서로 적용할 수 있게 if oldSchemaVersion < X 를 작성해야 한다.
앱이 실행될 때 마이그레이션이 진행되어야 하므로, AppDelegate에서 진행한다.
아래에서는 extension을 통해 코드를 분리하고, 함수를 만든 다음 didFinishLaunchingWithOptions 내에서 호출했다.
'SeSAC iOS 데뷔과정 2기' 카테고리의 다른 글
1017 새싹 71회차 정리 - Model Relationship (0) | 2022.10.17 |
---|---|
1014 새싹 70회차 정리 - Shell/Git 명령어 (0) | 2022.10.14 |
1012 새싹 68회차 정리 - Remote Notification (0) | 2022.10.12 |
1011 새싹 67회차 정리 - Firebase (1) | 2022.10.11 |
0906 새싹 46회차 정리 - Localization (0) | 2022.09.06 |