SVN/기타 저장소에 저장 프로시저 및 기타 스크립트를 유지하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/51288

문제

누구든지 SVN(또는 기타) 저장소에 뷰, 저장 프로시저 및 함수에 대한 스크립트 파일을 유지하는 최선의 방법에 대한 몇 가지 실제 예를 제공할 수 있습니까?

분명히 한 가지 해결책은 디렉터리 또는 그 이상의 위치에 있는 모든 다른 구성 요소에 대한 스크립트 파일을 갖고 간단히 TortoiseSVN 등을 사용하여 SVN에 보관하는 것입니다. 그런 다음 변경 사항이 있을 때마다 Management Studio 등에 스크립트를 로드합니다. .나는 이것을 정말로 원하지 않습니다.

내가 정말로 선호하는 것은 특정 기간에 변경된 모든 저장 프로시저/뷰 등을 내보내고 SVN에 커밋하는 주기적으로(밤마다?) 실행할 수 있는 일종의 배치 스크립트입니다.

아이디어?

도움이 되었습니까?

해결책

제 생각에는 Revision Control을 제대로 사용하고 싶지 않은 것 같습니다.

분명히 하나의 솔루션은 디렉토리 또는 어딘가에 모든 다른 구성 요소에 대한 스크립트 파일을 갖고 단순히 SVN에 보관하기 위해 TortoisesVN 등을 사용하는 것입니다.

이것이 이루어져야 할 일입니다.작업 중인 로컬 복사본(새 개발, 기존 조정 등)이 있고 단일 구성 요소/프로시저 등이 완료되면 프로세스를 다시 시작해야 할 때까지 개별적으로 커밋합니다.

단지 마지막 커밋 이후 'X' 시간이 지났다는 이유로 반쯤 완료된 코드를 커밋하는 것은 엉성하며 저장소를 사용하는 다른 사람에게 슬픔을 안겨줄 수 있습니다.

다른 팁

저장 프로시저를 다른 컴파일 가능한 코드와 마찬가지로 처리하는 것이 가장 좋습니다.코드는 리포지토리에 있으므로 체크아웃하여 변경하고 개발 도구에 로드하여 코드를 컴파일하거나 배포할 수 있습니다.

배치 파일을 생성하고 예약할 수 있습니다.

  • 스크립트 디렉터리의 내용을 삭제하세요.
  • 다음과 같은 것을 사용하여 SQL스크립트 내보내기 모든 개체를 스크립트/스크립트로 내보내려면
  • svn 커밋

참고:소스 제어 하에 개체가 있더라도 데이터나 진행 상황은 없습니다(이름이 변경된 필드입니까, 아니면 새 필드 1개와 삭제된 필드 1개입니까?).

이 접근 방식은 변경 기록을 유지하는 데 적합합니다.그러나 물론, "프로덕션 빌드"에 자동으로 커밋해서는 안 됩니다(깨진 빌드를 좋아하지 않는 한).

당신이 요청하지 않았지만 :또한 이 접근 방식은 현재 DB를 업그레이드하는 스크립트 세트를 생성하지 않습니다.초기 생성 스크립트만 갖게 됩니다.데이터 진행 상황 기록 및 업그레이드 스크립트 생성은 기본 소스 제어 시스템 범위를 벗어납니다.

나는 추천하고 싶다 레드게이트 SQL 비교를 사용하면 데이터베이스 버전을 비교하고 변경 스크립트를 생성할 수 있습니다. 또한 매우 쉽게 스크립트를 작성할 수 있습니다.

확장된 질문에 따르면 실제로 DDL 트리거를 사용하고 싶습니다.확인해 보세요 이 기사 데이터베이스에 대한 변경 로그 시스템을 생성하는 방법을 자세히 설명합니다.

가격대가 확실하지 않지만 DB 고스트 당신을 위한 선택이 될 수 있습니다.

저는 이 회사에서 일하지 않거나 제품을 소유하고 있지 않지만 동일한 문제에 대해 조사한 결과 이 ​​제품이 매우 유망해 보였습니다.

좀 더 설명했어야 했는데.문제의 데이터베이스는 내부 ERP 시스템용이므로 데이터베이스 버전이 많지 않고 생산/테스트/개발 버전만 있습니다.변경 요청, 새로운 멋진 기능 등을 수행한 경우 간단히 스크립트나 일련의 스크립트를 실행하여 테스트 데이터베이스에서 문제의 절차를 업데이트합니다. 모두 괜찮다면 프로덕션에도 동일한 작업을 수행합니다.

따라서 나는 전체 스키마 스크립트 자체를 추구하는 것이 아니라 시간이 지남에 따라 저장 프로시저에 대한 다양한 편집 내용을 추적할 수 있는 것입니다.예를 들어 PROCESS_INVOICE는 작업을 수행합니다.3월에 소소하게 업데이트됩니다.5월 말에 얼마 후 고객이 이중 청구서를 받는 경우(또는 기타 이상한 경우)가 드물게 발생하는 것으로 나타났습니다.시간이 지남에 따라 이 절차에 어떤 일이 발생했는지 확인하고 싶습니다.현재 여기에 개발 환경이 설정되는 방식이 없어서 변경하려고 합니다.

Visual Studio Team Edition의 일부인 DBPro를 추천할 수 있습니다.Team Foundation Server에 데이터베이스의 모든 부분을 저장하고 배포 및 데이터베이스 비교 등을 위해 몇 달 동안 사용해 왔습니다.

물론, 다른 분이 말씀하셨듯이 환경과 가격대에 따라 다릅니다.

나는 SVN을 사용하는 디렉토리 구조에 내 DB의 모든 관련 부분을 덤프하는 유틸리티를 작성했습니다.나는 그것을 Manager에 통합하려고 시도한 적이 없지만 관심이 있다면 여기에 있습니다. http://www.reluctantdba.com/dbas-and-programmers/sqltools/svnforsql2005.aspx

무료이고 정기적으로 실행하기 때문에 버그가 있으면 빨리 수정됩니다.

언제든지 SourceSafe를 SQL Server와 통합해 볼 수 있습니다.빠른 시작은 다음과 같습니다. 링크 .이를 사용하려면 Managment Studio Developers Edition이 있어야 합니다.

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