Realm 파일 열기
이 페이지의 내용
개요
클라이언트 애플리케이션을 실행하여 만든 로컬 영역 파일이 있는 경우 Realm Studio에서 열 수 있습니다.
영역 파일이 없다면 CSV를 가져와서 생성하거나 데모 파일을 다운로드할 수 있습니다.
로컬 Realm 파일 열기
Realm Studio에서 로컬 영역 파일을 열고 탐색할 수 있습니다. 이 파일은 로컬 컴퓨터에서 에뮬레이터를 실행하여 생성된 파일이거나 다른 소스의 파일일 수 있습니다. 일부 개발 도구에서는 에뮬레이터가 실행되는 동안 영역 파일을 보고 편집할 수도 있습니다. 이 워크플로는 객체 및 스키마 변경을 위한 빠르고 간단한 반복을 지원합니다.
Realm 파일 찾기
Realm은 모든 객체와 유형의 바이너리 인코딩 버전을 단일 영역 파일에 저장합니다. 파일은 영역을 열 때 정의한 특정 경로에 있습니다.
기본 영역 파일 경로를 찾으려면 다음을 수행하세요.
// Get on-disk location of the default Realm let realm = try! Realm() print("Realm is located at:", realm.configuration.fileURL!)
// Open a realm. const realm = await Realm.open({ schema: [Car], }); // Get on-disk location of the Realm const realmFileLocation = realm.path; console.log(`Realm file is located at: ${realm.path}`);
Android 에뮬레이터에서 사용하는 파일 시스템은 Realm Studio 실행 하는 시스템에서 직접 액세스할 수 없습니다. 파일에 액세스 하려면 먼저 에뮬레이터에서 파일 을 다운로드 해야 합니다.
먼저 에뮬레이터에서 파일 의 경로를 찾습니다.
// Run this on the device to find the path on the emulator Realm realm = Realm.getDefaultInstance(); Log.i("Realm", realm.getPath());
그런 다음 ADB를 사용하여 파일 을 다운로드 합니다. 앱 이 실행 동안 이 작업을 수행할 수 있습니다.
> adb pull <path>
ADB를 사용하여 수정된 파일을 다시 업로드할 수도 있지만 이는 앱이 실행되고 있지 않을 때만 가능합니다. 앱이 실행되는 동안 수정된 파일을 업로드하면 파일이 손상될 수 있습니다.
> adb push <file> <path>
var realm = Realm.GetInstance(); Console.WriteLine($"Realm is located at: {realm.Config.DatabasePath}");
// Get on-disk location of the default Realm final storagePath = Configuration.defaultStoragePath; // See value in your application print(storagePath);
config = SyncConfiguration.Builder(user, setOf(Item::class)) .initialSubscriptions { realm -> add( realm.query<Item>( "owner_id == $0", realmApp.currentUser!!.identity ), "User's Items" ) } .build() // Log on-disk location of the realm file Log.v("My Tag", "Realm Path: ${config.path}")
로컬 영역 파일의 위치를 알면 Open Realm file 대화 상자에서 해당 위치를 찾을 수 있습니다.
참고
숨겨진 경로에 있는 파일
MacOS에서 Xcode 에뮬레이터 파일의 기본 위치는 ~/Library
폴더 아래에 있습니다. 기본적으로 이 디렉토리는 숨겨진 디렉터리입니다. Open Realm
file 대화 상자에서는 이 위치를 찾지 못할 수도 있습니다.
Finder에서 Go to Folder
와(과) 같은 다른 기술을 사용하여 파일을 보고 거기에서 영역을 엽니다.
CSV에서 생성하기
로컬 영역 파일이 없는 경우 영역 Studio에서 CSV로 만들 수 있습니다.
CSV로 영역을 만들면 Realm Studio에서 이러한 세부 정보를 유추합니다.
CSV의 이름은 영역 파일에서 클래스 이름이 됩니다.
CSV의 첫 번째 행은 영역의 클래스 속성 이름이 됩니다.
각 열의 값은 클래스 속성 형식을 형성합니다. 'True' 및 'False' 값의 열은 부울 속성 형식이 됩니다. 정수로 구성된 열은 정수 속성 형식이 되는 식입니다. Realm Studio에서 속성 유형을 확인할 수 없는 경우 문자열이 됩니다.
예를 들어 다음 형식을 사용하는 data.csv
(이)라는 CSV는 다음과 같습니다.
1 device,number,flag 2 gizmo,1,TRUE 3 widget,2,FALSE
세 가지 속성을 가진 data
(이)라는 클래스 모델이 됩니다.
device
유형을 가진string
number
유형을 가진int
flag
유형을 가진bool
영역에 더 많은 데이터 추가
CSV에서 새 영역 파일을 생성하면 다음 메시지가 나타날 수 있습니다.
"데이터를 가져오지 못했습니다: 스키마에서 클래스 이름(파일 이름.csv)이 누락되었습니다."
이 경우 OK을(를) 누릅니다. CSV에서 영역을 생성하면 클래스 정의가 생성되었지만 영역에 객체가 없는 것을 볼 수 있습니다. 여기에서 CSV에서 가져오기를 수행하여 방금 생성한 클래스 정의에 매핑되는 객체로 영역을 채울 수 있습니다.
예시 다운로드
Realm 사용이 처음이고 가져올 영역 파일이나 CSV가 없는 경우에도 Realm Studio를 사용해 볼 수 있습니다.
Realm Studio를 열면 Download a demo Realm file 옵션이 표시됩니다.
Realm Studio에서 데모 파일을 다운로드하는 링크를 클릭하면 데모 데이터가 포함된 영역 파일을 저장할 이름과 위치를 지정할 수 있습니다. 파일을 다운로드한 후에는 Open Realm file 대화 상자를 사용하여 파일을 열 수 있습니다.
Realm 파일을 여는 중 오류가 발생했습니다.
영역 파일을 열려고 할 때 오류가 발생하는 경우 Realm Studio에서 지원되는 Realm 파일 형식과 SDK에서 생성된 Realm 파일 형식 간의 버전 불일치가 원인일 수 있습니다.
호환성을 확인하려면 SDK 버전 또는 Realm Studio 버전 의 출시하다 노트를 확인하세요. . Realm Studio 또는 Realm SDK 버전을 업그레이드 하거나 다운그레이드해야 할 수도 있습니다.
이러한 오류 메시지는 다음과 비슷할 수 있습니다.
Realm file is currently open in another process which cannot share access with this process. All processes sharing a single file must be the same architecture.
The file is already opened by another process, with an incompatible lock file format. Try up- or downgrading Realm Studio or SDK to match their versions of Realm Core.