2012-10-11 5 views
0

Visual Studio에서 데이터베이스 프로젝트를 빌드하는 TFS에 빌드 정의가 있습니다. 출력은 dbschema 및 다른 일부 파일입니다. dbschema를 사용하여 vsdbcmd를 사용하여 해당 데이터베이스를 다른 서버에 배포합니다. 데이터베이스 구조/스키마를 배포해도 문제가 없습니다.데이터베이스 프로젝트의 콘텐츠를 다른 데이터베이스에 배포

원본 데이터베이스의 데이터/콘텐츠를 다른 데이터베이스에도 배포 할 수 있습니까? 또는 db-content를 빌드 정의의 출력에 넣으시겠습니까?

감사

답변

1

당신은 당신이 필요로하는 데이터를 생성하는 DB 프로젝트 내에서 PostDeploy의 SQL 스크립트에서 INSERT 문을 포함 할 수 있습니다.

이러한 INSERT 문을 생성하려면 데이터 비교 도구를 사용하여 데이터가 포함 된 DB와 데이터베이스를 비교하지 않고 필요한 모든 INSERT 문을 생성 한 다음 복사하여 붙여 넣을 수 있습니다 PostDeployment 스크립트.

+0

명령 줄에서이 작업을 수행 할 수 있습니까? 빌드 정의에서 자동으로 사용하기를 원합니다. – Mathieu

+0

PostDeploy 스크립트에 넣으면 아무것도 할 필요가 없으며 그냥 작동합니다. –

+0

내 말은, "데이터 비교"를 수행하고 명령 줄에서 INSERT 문을 생성 할 수 있습니까? – Mathieu

0

포스트 배포 스크립트에서 SQL 병합 스크립트 (MERGE-stmts가있는 스크립트 파일)를 사용하여 데이터베이스의 조회 테이블을 최신 상태로 유지합니다. 각 조회 테이블 (stget 병합)에 대한 스크립트 파일을 작성하고 사후 배치 스크립트에서이 파일을 참조하십시오. 때때로 조회 테이블에 데이터를로드하고 특정 순서로로드하기 전에 FK 관계를 삭제해야 할 수 있습니다. 우리는 두 개의 스크립트를 만들었습니다. 하나는 병합 스크립트를 실행하고, 다른 하나는 병합 스크립트를 실행하고, 다른 하나는 병합 스크립트를 실행하고, 다른 하나는 FK를 다시 만듭니다. 우리를 위해 잘 작동합니다.