SQL 서버 저장 프로시저를 버전 제어하는 가장 좋은 방법은 무엇입니까?
데이터베이스 개체를 버전 제어하는 가장 좋은 방법은 무엇입니까?Visual studio 2005/2008과 SQL server 2005를 사용하고 있습니다.SVN과 함께 사용할 수 있는 솔루션을 원합니다.
다른 코드와 마찬가지로 "데이터베이스 프로젝트"를 응용프로그램 솔루션에 추가하고 데이터베이스 개체를 작성하는 데 사용되는 sql 파일을 여기에 보관합니다.해당 코드 파일에 대해 응용 프로그램과 동일한 버전 제어를 사용합니다.
Red Gate에서 제공하는 도구를 보십시오.특히 SP를 비롯한 SQL Server 개체의 백업/복원/비교 사례를 다룹니다.또는 Visual Studio를 통해 SP를 리포지토리에 체크인할 수 있다고 생각합니다.제가 직접 해본 적이 없습니다.하지만 저는 레드게이트 도구를 추천할 수 있습니다.그들은 저에게 많은 수고를 덜어주었습니다.
모든 테이블/스프로시저/함수 소스 제어에 SVN을 사용합니다.
저는 제 요구에 맞는 것을 찾을 수 없어서 SVN과 함께 사용할 수 있는 멋진 디렉토리 구조로 코드를 덤프할 수 있는 유틸리티를 작성하게 되었습니다.
관심 있는 분들은 이제 svn://finsel.com/public/VS2005/GenerateSVNFilesForSQL2005 에서 소스를 이용하실 수 있습니다.
우리는 Subversion을 사용하며, 우리가 하는 모든 것은 우리의 서브버전 프로젝트를 위해 sql 코드를 디렉토리에 저장한 다음 이미 있는 것에 대한 작업을 시작하기 전에 저장소에서 업데이트하고 준비가 되면 그 코드를 저장소에 커밋하는 것입니다.
진짜 비결은 개발자들이 그렇게 하도록 설득하는 것입니다.데이터베이스는 정기적으로 하위 버전에 없는 저장된 proc(또는 다른 데이터베이스 개체)를 삭제하여 이 작업을 수행합니다.물건을 한 번 잃어버리면 거의 아무도 다시 잃어버리지 않습니다.
미리 포장된 해결책을 모르겠어요, 죄송합니다...
데이터베이스에 연결하고 저장된 모든 프로시저를 텍스트 파일로 디스크에 저장하는 작은 스크립트를 사용할 수 없을까요?그런 다음 스크립트는 'svn add'로 시스템 호출을 하여 모든 텍스트 파일을 SVN 저장소에 추가합니다.
그런 다음 다른 스크립트를 DB에 연결하여 모든 저장 프로시저를 삭제하고 모든 저장소 저장 프로시저를 디스크에서 로드하기를 원할 수 있습니다.이 스크립트는 "svnup"을 실행하고 새 저장 프로시저/변경된 저장 프로시저가 있을 때마다 실행해야 합니다.
MS SQL로 이 작업을 수행할 수 있을지 확신할 수 없지만 MySQL이 이 작업을 수행할 수 있을 것으로 확신합니다.이를 위해 SVN 확장을 작성하는 것이 너무 복잡할 경우 Capistrano는 체크인/체크아웃 스크립트 IIRC를 지원합니다.
가장 좋은 방법은 당신에게 효과가 있는 방법입니다.
가장 쉬운 방법은 현재 존재하지 않는 방법입니다.
우리는 반수동 방식을 사용합니다(소스 제어 하에 있는 스크립트, 저장 프로시저를 프로덕션 서버에 배포할 수 있는 소수의 사용자, 스키마의 변경 사항은 체크인된 기본 파일의 변경 사항에 반영되어야 합니다).
우리가 해야 할 일은 일종의 소스 제어와 일반 텍스트 스키마 덤프 디피를 구현하는 것입니다. 그러나 대부분의 경우 정말로 귀찮은 작업이지만 일반적으로 이 작업은 '우리에게 효과가 있습니다.
가능하다면 데이터베이스 프로젝트를 사용하여 애플리케이션 소스와 함께 DB를 버전화해야 한다는 것에 동의합니다.
그러나 엔터프라이즈 시나리오에 있는 경우 도구를 사용하여 서버의 변경사항을 추적하고 버전을 지정하는 것도 고려해야 합니다.데이터베이스 프로젝트가 존재한다고 해서 일부 관리자나 개발자가 서버에서 이러한 스프록을 변경할 수 없는 것은 아닙니다.
일반 텍스트로 덤프하고 VCS에 보관합니다.
백업 및 커밋을 스크립팅하여 유사한 작업을 수행할 수 있습니다.
http://scriptdb.codeplex.com/ 의 scriptdb.exe를 사용하고 있습니다.
그리고 철도를 이용하는 것이 유용할 수도 있습니다. http://code.google.com/p/migratordotnet/wiki/GettingStarted
스키마를 덤프할 때 versaplex 사용: http://code.google.com/p/versaplex/
Versaplex에는 데이터베이스 스키마(테이블, SP 등)와 데이터(데이터는 CSV로 덤프됨)를 읽는 Schemamatic이 함께 제공됩니다.저는 SVN과 git와 함께 사용하는데, 정말 멋집니다 :) 만약 도움이 필요하다면, 저에게 알려줄 가치가 있습니다! http://github.com/eduardok/versaplex
언급URL : https://stackoverflow.com/questions/146543/what-is-the-best-way-to-version-control-my-sql-server-stored-procedures
'it-source' 카테고리의 다른 글
속성 선언의 "new" 키워드(c#) (0) | 2023.06.25 |
---|---|
메서드 public abstract java.util에 대한 쿼리의 유효성을 검사하지 못했습니다.목록. (0) | 2023.06.25 |
npm 피어 종속성을 자동으로 설치하는 방법은 무엇입니까? (0) | 2023.06.25 |
오라클 호출 저장 프로시저 내부 선택 (0) | 2023.06.25 |
C# csv를 xls로 변환(기존 csv 파일 사용) (0) | 2023.06.25 |