문제

소스 제어에서 저장 프로시저/뷰/함수/테이블 변경 사항 배포를 자동화하기 위한 몇 가지 "모범 사례"를 찾고 있습니다.나는 StarTeam과 ANT를 사용하고 있으므로 라벨링이 처리됩니다.제가 찾고 있는 것은 여러분 중 일부가 StarTeam일 필요는 없지만 소스에서 이러한 개체를 가져오는 것을 자동화하는 방법에 접근한 방법입니다.

실행하고, 체크인하고, 레이블을 지정할 수 있는 하나의 스크립트로 끝내고 싶습니다.

나는 누군가에게 그런 글을 쓰라고 요구하는 것이 아닙니다. 단지 과거에 효과가 있었던(또는 효과가 없었던) 몇 가지 아이디어나 접근 방식일 뿐입니다.

나는 엉망진창을 치우려고 노력하고 있으며 이것이 가능한 한 "올바른" 것에 가까워지도록 하고 싶습니다.

테이블/뷰/함수 등을 저장하고 있습니다.StarTeam의 개별 파일에는 SQL 2K5가 있습니다.

도움이 되었습니까?

해결책

우리는 redgate의 SQL Compare를 사용합니다(http://www.red-gate.com/).

우리는 프로덕션 데이터베이스, 개발 데이터베이스를 가지고 있으며 각 개발자는 자신의 데이터베이스를 가지고 있습니다.

개발 데이터베이스는 개발자가 변경 사항을 체크인할 때 데이터베이스에 적용한 변경 사항과 동기화됩니다.

개발자는 또한 동기화 스크립트와 SQL 비교에 의해 생성된 비교 보고서를 체크인합니다.

애플리케이션을 배포할 때 SQL 비교를 사용하여 개발 데이터베이스를 프로덕션 데이터베이스와 동기화하기만 하면 됩니다.

우리의 애플리케이션은 사내에서만 사용되기 때문에 이는 우리에게 효과적입니다.이것이 귀하의 시나리오가 아닌 경우 SQL Packager(redgate에서도 제공)를 살펴보겠습니다.

다른 팁

체크인 마이그레이션 (에서 지적한 앤드류 피터스 ~에 다른 게시물)

나는 뷰, 프로시저, 트리거(원하는 대로 다시 생성할 수 있는 개체)를 테이블에서 분리하는 것을 선호합니다.보기, 프로시저 및 트리거의 경우 이를 확인하고 최신 항목을 다시 생성하는 작업을 작성하기만 하면 됩니다.

테이블의 경우 행이 하나인 데이터베이스 버전 테이블을 선호합니다.해당 표를 사용하여 적용되지 않은 새 업데이트를 확인하세요.그런 다음 각 업데이트가 적용되고 버전 번호가 업데이트됩니다.업데이트가 실패하면 해당 업데이트만 확인하면 되며 이전 업데이트가 다시 발생하지 않는다는 것을 알고 다시 실행할 수 있습니다.

Carl이 지적했듯이 diff 유틸리티를 사용하여 업데이트 스크립트를 만들 수 있습니다.RedGate는 좋은 제품을 만들지만 SQL Server 2k5에는 테이블 차이 이 작업도 수행해야 합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top