나는 큰 eshop을 위해 wotking하는 데이터베이스 개발 팀의 일원이다. 우리는 MS SQL 2016과 ASP.NET을 사용하고 있습니다. SQL Server는 프로덕션 환경에서 연결 풀링 (aprox 7-10k 배치/초)을 사용하는 10 개 이상의 IIS 서버의 클라이언트가 사용하며 18 개의 DEV/TESTING IIS 서버 (멀티 TB 크기이기 때문에 하나의 DEV 데이터베이스 만 사용)를 사용합니다. 우리는 기존 저장 프로 시저를 자주 변경해야하는 새로운 기능을 개발합니다.효과적인 버전 저장 절차는 어떻게됩니까?
프로덕션 환경에 변경 사항을 배포하는 경우 응용 프로그램 수정을 IIS로 변경하고 데이터베이스 절차를 변경하는 작업의 일부입니다. 배포하는 경우 항상 IIS 서버 5 개로 변경된 다음 IIS 서버 5 개로 변경됩니다. 그 전까지는 IIS 서버에 이전 버전과 새 버전이 모두 존재합니다. 이러한 버전은 데이터베이스의 프로 시저를 동시에 사용하는 동안 잠시 동안 공존해야합니다. 데이터베이스 레벨에서 우리는 프로 시저에 대해 여러 버전을 사용하여이 상황을 해결합니다. 오래된 앱 버전은 EXEC dbo.GetProduct를 호출하고 새로운 앱 버전은 dbo.GetProduct_v2를 사용합니다. 모든 IIS에 응용 프로그램의 새 버전을 배포하면 모두가 dbo.GetProduct_v2를 사용하고 있습니다. 다음 배포에서는 상황이 바뀌고 dbo.GetProduct에 새 버전이 포함됩니다. 비슷한 상황이 개발 및 테스트 환경에 있습니다.
나는이 솔루션이 이상적이지 않고 영감을 받고 싶다는 것을 충분히 알고 있습니다.
데이터 부분과 논리 부분을 분리하는 것을 고려합니다. 하나의 데이터베이스에는 데이터 테이블이 있고, 다른 데이터베이스에는 프로 시저 및 기타 프로그램 개체 만 포함됩니다. 새 버전을 배포 할 때 논리를 포함하는 전체 데이터베이스의 새 버전을 배포하기 만하고 절차 버전을 만들 필요가 없습니다. 논리 데이터베이스의 프로시 저는 데이터로 데이터베이스를 조회합니다. 그러나이 솔루션의 단점은 다른 데이터베이스에서의 쿼리를 지원하지 않기 때문에 내년에 사용할 기본 컴파일 된 프로 시저를 사용할 수 없다는 것입니다. 또 다른 옵션은 하나의 데이터베이스와 다른 스키마에서 별도의 절차 버전을 사용하고
... 당신은 어떤 아이디어, 프로/단점이 있거나 우리를 도와하고 관리 할 수있는 도구를 알고 있다면
이/배포/여러 PROC 버전을 사용 , 의견을 말하십시오. 우리는 TFS와 힘내를 사용하고 있지만, 이것은 SQL 데이터베이스에 절차의 버전을 해결하지 않습니다
는편집 정말 고마워요. 내 주요 질문은 데이터베이스의 여러 버전의 절차를 사용하여 여러 버전의 IIS 응용 프로그램을 관리해야하는 필요성을 처리하는 방법입니다.
GIT와 같은 소스 리포지토리를 살펴 보셨습니까? 여러 가지 다른 대안이 있지만 실제로 투자하고자하는 것이 있습니다. https://git-scm.com/ –
누군가가 질문을 할 때 나를 즐겁게하지만 자신의 게시물은 질문에 대한 잘못된 정보를 전적으로 포함합니다. 올바른 프로젝트와 도구를 사용하면 TFS/Git이 버전 관리의 문제를 확실하게 해결할 수 있습니다. 스키마 비교를 살펴보십시오. –
최종 목표는 무엇입니까? IIS 코드에서 SP 참조를 변경할 필요가 없습니까? 그리고 DB에서만 SP 버전 관리를 관리 할 수 있습니까? – thomas