2016-09-16 3 views
0

우리는 Kentico 8.2를 사용하고 개발, 테스트, 스테이지 및 프로덕션 환경을 갖추고 있습니다. 때로는 현재 Production에있는 내용으로 하위 환경의 컨텐츠 트리를 새로 고칩니다. Kentico는 이것을 지원하지만 트리의 완전한 동기화를 수행 한 후에는 노드가 큰 부분에서 순서가 잘못되었습니다. 모든 노드 주문을 수동으로 동기화하는 것은 상당히 노동 집약적입니다. 어떻게 자동으로이 작업을 수행 할 수 있습니까? 이것이 Kentico에서 기본적으로 지원됩니까?프로덕션 환경에서 dev/test/stage 환경으로 노드를 동기화합니다.

내가 가진 한 가지 아이디어는 Production CMS_Tree 테이블을 Test 환경 (NodeAliasPath에 합류)의 동일한 테이블에 조인하고 테스트에서 NodeOrder를 다음과 같이 설정하는 간단한 SQL 문을 T-SQL에서 사용하는 것입니다. Production의 NodeOrder 값.

우리는 부작용을 알지 못하기 때문에 데이터베이스 자체에서 많은 직접적인 데이터 조작을하지 않으려 고합니다. 이 경우 노드 주문에 대한 그런 업데이트가 데이터베이스 나 Kentico 앱의 다른 요소에 악영향을 미칩니 까?

+0

프로덕션 환경에서 낮은 환경에서만 수동으로 새로 고치십니까? 이 방법을 "새로 고침"하기 위해 사용하는 방법은 무엇입니까? – probrandono

+0

@probrandono 예, 생산 환경을 하위 환경으로 새로 고침하십시오. Dev> Test> Stage> Prod에서 이동하려면 Staging 앱을 "normal"로 사용합니다. 이 방법은 원본 환경에서 대상으로 전체 콘텐츠 트리를 동기화합니다. – neizan

+0

시스템> 설정에있는 노드 순서 설정은 무엇입니까? –

답변

0

순서가 잘못된 노드가 무엇을 의미하는지 명확하지 않지만 준비가있는 것은 문서를 업데이트 할 때 작은 준비 작업을 만들어 동일한 상태에서 전체 콘텐츠를 동기화 된 상태로 유지하려고한다는 것입니다 그들 주위에).

완전한 동기화를 사용하면 내용과 전체 구조가 다시 푸시됩니다. 따라서 노드의 순서를 변경하면 생산 단계에서 하위 노드로 푸시하려고 시도하고 프로세스 중에 문서를 다시 작성하거나 새 노드를 생성합니다 그것들은 현재의 주문과 CMS_Tree 테이블에 있지만, 다른 문서들에 대한 작은 작업들을 놓치기 때문에 노드 밖에서 끝납니다.

스테이지를 자주 수행하거나 생성 된 작업을 사용하여 동기화 된 상태로 유지하는 것이 좋습니다. 그렇지 않으면 일관성없는 환경 및 스테이징 예외가 발생할 수 있습니다.

특히 콘텐츠 트리에서 DB 조작이 정확하고 FK 제약 조건이 있으므로 조언을 듣지는 못하지만 여전히 혼란 스러울 수 있으므로 반대하는 것이 좋습니다.

+0

"노드 순서가 어 떻지?"... 다른 환경에서 동일한 레코드 (NodeAliasPath에 조인 됨)에 대한 열 dbo.CMS_Tree.NodeOrder의 값이 다릅니다. – neizan

0

다음은 내가 수행 할 작업입니다. 원본 서버에서 일치해야하는 대상 서버에서 콘텐츠 트리를 삭제합니다. 이것이 사실이라고 생각하면 소스에서 대상 서버로 컨텐츠 새로 고침을 수행 할 것입니다.

나는 이것을 여러 번했고 매력처럼 작동합니다.

+0

예, 이것은 기본적으로 우리가 한 일입니다. 대상에서 컨텐츠 트리를 삭제하십시오. 그런 다음 소스에서 전체 트리를 동기화하십시오. 괜찮 았지만 트리의 노드가 순서가 잘못되었습니다 (예 : Pages 앱에서 프로덕션과 일치하도록 트리를 이동하려면 페이지를 이동해야합니다). 이것이 내가 자동화 할 필요가있는 것입니다. – neizan

1

준비> 페이지>로 이동하여 최상위 페이지를 선택한 다음 현재 하위 트리 동기화를 클릭하면 페이지와 해당 순서를 올바르게 동기화해야합니다. 모든 서버가 동기화되고 있는지 확인하기 위해 동기화하기 전에 대상 서버의 모든 페이지를 삭제해야 할 수 있습니다. 작동하지 않으면 버그 일 수 있습니다. 최신 핫픽스를 사용하고 있습니까?

+0

나는 그 핫픽스에 대해 잘 모르겠다. 전체 동기화를 실행하기 전에 대상에서 전체 콘텐츠 트리를 삭제했습니다. – neizan

관련 문제