마이그레이션
@frozen
public struct Migration
Migration
인스턴스는 스키마 마이그레이션을 용이하게 하기 위한 정보를 캡슐화합니다.
Realm 버전을 업데이트할 때 인스턴스 Migration
가 사용자 정의 MigrationBlock
블록으로 전달됩니다. 이 인스턴스는 이전 및 새 데이터베이스 스키마, Realm의 객체에 대한 액세스를 제공하고 마이그레이션 중에 Realm을 수정하는 기능을 제공합니다.
-
이 Realm에서 지정된 유형의 모든 객체를 열거하여 각 객체의 이전 버전과 새 버전을 모두 제공합니다. 객체의 속성은 첨자를 사용하여 액세스할 수 있습니다.
선언
Swift
public func enumerateObjects(ofType typeName: String, _ block: MigrationObjectEnumerateBlock)
매개변수
objectClassName
열거할
Object
클래스의 이름입니다.block
이 Realm에서 객체의 이전 버전과 새 버전을 모두 제공하는 차단입니다.
-
마이그레이션되는 Realm에서
className
유형의Object
를 만들고 반환합니다.value
인수는 객체를 채우는 데 사용됩니다. 키-값 코딩을 준수하는 객체,NSJSONSerialization
의 메서드에서 반환된 배열 또는 사전 또는 각 managed 속성에 대해 하나의 요소를 포함하는Array
일 수 있습니다. 필수 속성이 없고 해당 속성이 기본값으로 정의되지 않은 경우 예외가 발생합니다.Array
를value
인수로 전달할 때 모든 속성이 존재하고 유효해야 하며 모델에 정의된 속성과 동일한 순서여야 합니다.선언
Swift
@discardableResult public func create(_ typeName: String, value: Any = [:]) -> MigrationObject
매개변수
className
생성할
Object
클래스의 이름입니다.value
생성된 객체를 채우는 데 사용되는 값입니다.
반환 값
새로 생성된 객체입니다.
-
마이그레이션 중에 Realm에서 객체를 삭제합니다.
enumerate(_:block:)
에 전달된 블록 내에서 이 메서드를 호출할 수 있습니다.선언
Swift
public func delete(_ object: MigrationObject)
매개변수
object
마이그레이션되는 Realm에서 삭제할 객체입니다.
-
지정된 클래스의 속성 이름을
oldName
에서newName
로 바꿉니다.선언
Swift
public func renameProperty(onType typeName: String, from oldName: String, to newName: String)
매개변수
className
속성의 이름을 변경해야 하는 클래스의 이름입니다. 이 클래스는 이전 Realm 스키마와 새 Realm 스키마 모두에 있어야 합니다.
oldName
이름을 바꿀 속성의 이전 열 이름입니다. 새 Realm 스키마에 의해 정의된 클래스에 이 이름을 가진 속성이 없어야 합니다.
newName
이름을 바꿀 속성의 새 열 이름입니다. 이전 Realm 스키마에 의해 정의된 클래스에 이 이름을 가진 속성이 없어야 합니다.