Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

인터페이스 RealmMigration

이 페이지의 내용

  • io.realm
  • 메서드 요약
  • 메서드 세부 정보
  • 마이그레이션

RealmMigration 클래스는 한 Realm 스키마를 다른 Realm 스키마로 마이그레이션하는 데 사용됩니다. Realm의 스키마는 io.realm.RealmObject를 확장하거나 io.realm.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 클래스가 자주 변경될 수 있는 개발 중에는 io.realm.Realm.deleteRealm(RealmConfiguration) 을 사용할 수 있습니다. 이렇게 하면 데이터베이스 파일이 삭제되고 마이그레이션이 필요하지 않습니다.

다음도 참조하세요.

수정자 및 유형
메서드 및 설명
public void
migrate (
long oldVersion,
long newVersion
)

마이그레이션이 필요한 경우 이 메서드가 호출됩니다.

public void migrate (
long oldVersion,
long newVersion
)

마이그레이션이 필요한 경우 이 메서드가 호출됩니다. 전체 메서드가 쓰기 트랜잭션(write transaction)으로 래핑되므로 자체 트랜잭션에서 래핑하지 않고도 기존 객체를 생성, 업데이트 또는 삭제할 수 있습니다.

매개변수

  • realm - 마이그레이션을 수행할 Realm 스키마입니다.

  • oldVersion - 마이그레이션 시작 시점의 Realm의 스키마 버전입니다.

  • newVersion - 마이그레이션 실행 후 Realm의 스키마 버전입니다.

돌아가기

RealmMap