2011-08-22 5 views
3

저는 앞으로 나가야 할 (RavenDB 같은 것을 배우기위한 작은 프로젝트 인) 문서를 많이 바꿀 때 응용 프로그램을 개발 중입니다. 일부 변경 사항은 역 호환되지 않으므로 문서를 가져 오려고하면 JSON 직렬화 오류가 발생합니다.RavenDB : 문서 속성을 다른 유형으로 변환

deserialization 중에 이전 유형의 속성을 새 형식으로 변환하는 방법이 있습니까? 클라이언트 라이브러리로 Raven.Client.Lightweight을 사용하고 있습니다.

예 :

나는 Dictionary<string,string>이었다 클래스에서 AllProperties이라는 속성을 가지고 있었다. 사전에서 유형을 MetadataItemCollection 클래스로 변경했습니다.

+0

실제로 시도하는 것이 올바른 방법일까요? 즉, 모듈이 확장을 위해 열리지 만 수정을 위해 닫히는 "열림 닫기 원리"SOLID의 두 번째 규칙을 따르지 않아야합니까? 속성 이름을 변경하는 경우 문서를 삭제하고 처음부터 다시 작성해야합니다. 그런 다음 코어 구조가 안정적으로 구현되면 확장을 허용하는 인터페이스가 필요합니까 ?? 생각? – Jethro

+0

@Jehtro : 진심이야? – jgauffin

답변

6

다른 데이터베이스 솔루션에서와 마찬가지로, 내가 좋아하는 마이그레이션 - 이러한 종류의 작업을위한 프레임 워크를 사용하는 것이 좋습니다. 문서에 set-based operations을하고 싶을 것입니다.

흥미가 Ayende 다음 몇 일 ravendb 마이그레이션에 대한 두 개의 기사를 게시 할 예정입니다, 그러나, 구글은 이미 색인하고 여기이 기사에 액세스 할 수 있습니다

RavenDB Migrations: When to execute?

RavenDB Migrations: Rolling Updates

Ayende, 제발 용서해주세요 ...;)

3

개발 중에이 작업을 수행하는 경우 이전 문서를 삭제하고 다시 작성하는 것이 좋습니다. 프로덕션 환경에서이 작업을 수행하는 경우 dlang이 게시 한 게시물을 살펴보고 특정 문제를 논의합니다.