패키지 io.realm
인터페이스 RealmMigration
-
public interface RealmMigration
RealmMigration 클래스는 한 Realm 스키마를 다른 Realm 스키마로 마이그레이션하는 데 사용됩니다. Realm의 스키마는RealmObject
를 확장하거나RealmModel
를 구현하는 프로젝트의 모든 클래스에 의해 정의되므로 이러한 클래스를 변경하려면 마이그레이션이 필요합니다.이전 schemaVersion에서 최신 버전으로의 마이그레이션을 지원하려면 마이그레이션을 작성할 때 다음 패턴을 사용하는 것이 좋습니다.
public class CustomMigration implements RealmMigration { \@Override 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 클래스가 자주 변경될 수 있는 개발 중에
Realm.deleteRealm(RealmConfiguration)
을 사용할 수 있습니다. 이렇게 하면 데이터베이스 파일이 삭제되고 마이그레이션이 필요하지 않습니다.
-
-
메서드 요약
모든 메서드 인스턴스 메서드 추상 메서드 수정자 및 유형 메서드 설명 void
migrate(DynamicRealm realm, long oldVersion, long newVersion)
마이그레이션이 필요한 경우 이 메서드가 호출됩니다.
-
-
-
메서드 세부 정보
-
마이그레이션
void migrate(DynamicRealm 영역, long oldVersion, long newVersion)
마이그레이션이 필요한 경우 이 메서드가 호출됩니다. 전체 메서드가 쓰기 트랜잭션(write transaction)으로 래핑되므로 자체 트랜잭션에서 래핑하지 않고도 기존 객체를 생성, 업데이트 또는 삭제할 수 있습니다.- 매개변수:
realm
- 마이그레이션을 수행할 Realm 스키마입니다.oldVersion
- 마이그레이션 시작 시점의 Realm의 스키마 버전입니다.newVersion
- 마이그레이션 실행 후 Realm의 스키마 버전입니다.
-
-