인터페이스 RealmMigration
Atlas Device SDK는 더 이상 사용되지 않습니다. 자세한 내용은 지원 중단 페이지 를 참조하세요.
io.realm
RealmMigration 클래스는 한 Realm 스키마를 다른 Realm 스키마로 마이그레이션하는 데 사용됩니다. Realm의 스키마는 io.realm.RealmObject를 확장하거나 io.realm.RealmModel 을 구현하는 프로젝트의 모든 클래스에 의해 정의되므로 이러한 클래스를 변경하려면 마이그레이션이 필요합니다.
이전 schemaVersion에서 최신 버전으로의 마이그레이션을 지원하려면 마이그레이션을 작성할 때 다음 패턴을 사용하는 것이 좋습니다.
public class CustomMigration implements RealmMigration { public long migrate(DynamicRealm realm, long oldVersion, long newVersion) { RealmSchema schema = realm.getSchema(); if (oldVersion == 0) { // Migrate from v0 to v1 oldVersion++; } if (oldVersion == 1) { // Migrate from v1 to v2 oldVersion++; } if (oldVersion < newVersion) { throw new IllegalStateException(String.format(Locale.US, "Migration missing from v%d to v%d", oldVersion, newVersion)); } } }
RealmObject 클래스가 자주 변경될 수 있는 개발 중에는 io.realm.Realm.deleteRealm(RealmConfiguration) 을 사용할 수 있습니다. 이렇게 하면 데이터베이스 파일이 삭제되고 마이그레이션이 필요하지 않습니다.
메서드 요약
수정자 및 유형 | 메서드 및 설명 |
---|---|
public void | 마이그레이션이 필요한 경우 이 메서드가 호출됩니다. |
메서드 세부 정보
마이그레이션
마이그레이션이 필요한 경우 이 메서드가 호출됩니다. 전체 메서드가 쓰기 트랜잭션(write transaction)으로 래핑되므로 자체 트랜잭션에서 래핑하지 않고도 기존 객체를 생성, 업데이트 또는 삭제할 수 있습니다. 매개변수
|