2016-10-01 1 views
0

저는 안드로이드 프로그래머이기 때문에 안심하고 먹을 수 있습니다. 두 영역 데이터베이스 파일을 하나의 결합 된 영역 데이터베이스에 병합하는 쉬운 방법이 있다면 누구라도 알고 있습니까? 데이터베이스는 동일한 realmobject 유형을 포함하며 상호 배타적입니다 (동일한 객체의 겹침 없음).안드로이드에서 동일한 realmobject의 두 영역 데이터베이스를 결합하여 휴대폰에 착용하십시오.

내 목표는 다음과 같습니다. 나는 사용자가 웨어러블을 사용하여 추가하는 객체 목록으로 구성된 "세션"이라는 영역 데이터베이스를 가지고 있습니다. 사용자가 세션을 저장하면 전화기에 저장되어있는 영역 데이터베이스의 모든 과거 세션과 결합 할 수 있도록 저장 한 객체를 전화기로 보내려고합니다.

데이터베이스 파일을 자산으로 휴대 전화에서 보내고이 파일 (예 : https://gist.github.com/tajchert/dc30560891bc6aee76fb)을 사용하여 휴대 전화에서 파일을 바꿀 수 있지만 매번 전체 데이터베이스를 보내는 것은 낭비입니다. 착용 데이터베이스가 어떻게 든 삭제되면 모든 것을 잃고 싶지는 않습니다. 차라리 현재 세션의 새 데이터 만 저장하고 새 세션이 시작될 때 웨어러블의 데이터베이스를 지우는 것이 좋습니다. 그렇게하면 웨어러블 데이터 레이어에 새로운 데이터 만 전송할 수 있습니다.

답변

0

일반적으로 영역간에 Realm 객체를 이동할 수 없습니다. copyFromRealm()copyToRealm()을 사용할 수 있습니다. 물론, 당신은 이미 옮겨진 어떤 물체를 추적해야 할 것입니다. (어떤 식 으로든 마킹하거나 삭제하는 것).

또 다른 옵션은 모든 장치를 동기화 상태로 유지하는 데 도움이되는 Realm Mobile Platform (https://realm.io/products/realm-mobile-platform/)을 사용하는 것입니다.

+0

렐름 모바일 플랫폼은 티켓처럼 들립니다! linux/mac osx 요구 사항 만 서버를 실행합니까? 나는 지금 Windows PC를 사용하고있다. 또한, 더 이상 내 모바일 앱에 영역 파일을 푸시 할 필요가 없다는 것을 의미합니까, 내 wear build.gradle에'syncEnabled = true'를 넣으면 데이터 전송을 처리할까요? – grantka

+0

Windows는 현재 지원되지 않습니다. 그러나 Windows 시스템의 가상 시스템 (도커, ...)에 Linux를 설치하려고 할 수 있습니다. – geisshirt