TouchDB-iOS를 사용하여 우리는 클라우드 CouchDB 서버에 복제하는 로컬 CouchDB 문서 저장소가있는 iOS 앱을 가지고 있습니다. 우리는이 응용 프로그램을 실행하는 사용자가 몇 명있어 TouchDB 데이터베이스 복제본이 많이 있습니다.두 CouchDB 디자인 간을 옮기기
우리가 앱으로 시작했을 때 우리는 CouchDB를 처음 접했을뿐입니다. A 유형의 문서에 B 유형의 문서 인 쉼표로 구분 된 ID 목록을 설명하는 문자열이 표시되도록 관계를 설계했습니다.
따라서 Employee/Employer 예제를 사용하면 Employer
에는 employeeIds
이라는 속성이 있으며 "1,7,8,10"이됩니다. 직원 10이 종료하면이 목록은 "1,7,8"로 업데이트됩니다.
다른 앱에서 다른 전화를 사용할 때 직원 7이 목록을 종료하고 '1,8,10'으로 업데이트되어 복제시 충돌을 일으킨다 고 가정합니다.
employerId
은 Employee
문서 속성에 더 좋은 아이디어라고 생각합니다. 직원이 그만두면 그의 employerId
을 비워두기 만하면됩니다. 그런 갈등이 훨씬 적을 것입니다. 그렇죠?
지금 제가 직면 한 문제는 여러 개의 응용 프로그램을 가지고있는 것입니다. 첫 번째 디자인에서 두 번째 디자인으로 모든 CouchDB 데이터베이스를 마이그레이션하는 방법은 무엇입니까?
기존 앱을 모두 폐기해야합니까, 아니면 기존 앱을 손상시키지 않고 충돌을 최소화하면서 모든 앱을 새로운 디자인으로 이전 할 수 있습니까? 이 사건을 어떻게 처리해야합니까? 귀하의 응용 프로그램은, 당신은 단순히 "새로운 스타일"문서 "이전 스타일"로 작동하도록 뷰를 업데이트 할 수 있습니다 (뷰를 통해) 데이터베이스에 쿼리를 수행하는 경우
:
클라이언트를 제어합니까? 사용자가 주어진 시간 내에 업그레이드하도록 할 수 있습니까? –
네,하지만 최후의 수단으로 그걸 지키고 싶습니다. –