SQL 2005 에 있는 SQL Server Management Studio(이하 SSMS)라는 프로그램으로 DB관리를 하면 이런저런 다양한 작업을 할 수 있다.  예전에 분리되어 있던 DB관리도구와 Query 분석기가 하나로 합쳐진데다, Visual Studio 와 유사한 I/F 덕에 많은 이득이 보고 있다.

그런데, 무수히 많이 생기는 Query들의 관리가 어려울때가 있다.
특히 DB관련해서 작업을 할때, 팀 별로 관리하거나, 별도 Query를 저장하려고 하면, 그 불편함은 가중된다.

예를 들자면, DB 내 저장 프로시저가 생겼을 때, 개발 서버에서 생긴 저장 프로시저를 다시 운영서버로 옮길려고 하면, 쿼리를 다시 생성해 올려야 한다. 그리고 해당 생성/변경 쿼리는 또 다시 저장하지 않고 날렸다가, 맨 나중에 산출물 만들려고 하다가 보면, 처음 부터 끝까지 쿼리 내용을 끄집어 내곤 한다.
또, 몇가지 관리 차원에서 특정 데이터가 존재하는지 여부를 하기위한 테스트 쿼리를 짜놓고는 까먹다가, 다시 쓸려고 하면, 사라져 없어져 이후에 더 이상 작업이 불가능하거나 다시 쿼리를 작성하는 경우도 발생한다.

그래서 고민해본 결과 버전 관리도구가 이 SSMS 와 연결되면 될 것 같다는 생각이 들었고, 어느정도는 맞아 들었다. 이에 연결 방법을 소개하도록 한다.

(참고 사이트 : http://www.kevingao.net/sourcesafe/integrating-sourcesafe-vss-with-sql-server-2005.html )

1. 구성 방법

  1. Visual Source Safe 혹은 Team Explorer 설치하기.   
    일단 Visual Source Safe는 2005 이상 버전이면 큰 문제 없이 연결된다. Visual Source Safe 2005를 설치방법은 그냥 Next 연발이기 때문에, 그리 어렵지 않다.
    그에 반해 Team Explorer는 조금 다르다. Team Explorer를 받아서 설치해도 SSMS에는 적용되지 않는다. 이에 MS 다운로드 사이트에서 별도로 더 받아와야 한다. 다운로드를 위한 해당 링크는 아래와 같다.
    http://www.microsoft.com/downloads/en/results.aspx?freetext=MSSCCI&displaylang=en&stype=s_basic
    ( 만일 위의 링크가 깨졌다면 MSSCCI 라는 검색어로 http://download.microsoft.com 에서 검색하면 나온다. ) Team Explorer 2008가 설치되어 있다면 Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider를 2005가 설치되있다면, Visual Studio Team Foundation Server MSSCCI Provider를 다운 받아 설치하도록 한다.

    일단 설치가 정상적으로 되었으면 다음 단계로 넘어가도록 한다.

  2. 버전 컨트롤러 선택.
    이제 Visual Source Safe 2005를 설치하던 MSSSCCI를 설치하던 버전 관리도 도구와 연결할 수 있는 클라이언트가 설치되었다면 모든 준비는 된 것이다. 이제 SSMS를 실행하도록 한다. 일단 해당 DBMS와 연결하도록 한다.

    일단 정상적으로 DBMS와의 연결이 되었다면 이제 메뉴에 있는 도구(T) –> 옵션(O)에 들어가도록 한다.
     
    옵션 창이 떴으면 왼편에 있는 트리 중에, 소스 제어를 선택한 뒤, 오른편에 있는 선택 상자에서 자신이 설치한 소스제어 도구를 연결하도록 한다.
    일단 확인을 클릭하면, 설정한 버전 관리도구에 따라 로그인 창이나 설정 창이 다르게 뜰 것이다. 해당하는 도구에 맞게 정보를 넣어주면 된다.  (로그인 및 설정 방법등은 각 버전관리 도구의 도움말을 참고하면 된다.)
  3. 솔루션 적용
    연결이 성공적으로 되었으면 이번엔 솔루션 탑색기를 열도록 한다. 여는 방법은 메뉴에서 보기(V) –> 솔루션 탐색기(P) 를 선택하면 우측에 솔루션 탐색기를 볼 수 있을 것이다. 버전 관리를 하기 위한 소스는 Query 같은 내용인데, 이를 묶는 역할을 하는 부분으로 반드시 있어야 한다.
     

    이제 파일(F) –> 새로 만들기를 선택한 뒤, 프로젝트를 선택한다.

    그러면 프로젝트 종류를 선택하도록 요청 받는데, 그 중 SQL Server 스크립트를 선택하도록 한다.
    또한 아래 쪽의 내용을 보고, 솔루션 이름이나, 솔루션이 저장될 위치들을 적절하게 설정하도록 한다.

    솔루션이 만들어지면 오른편(혹은 왼편)에 솔루션 탐색기 영역에 새로 만들어진 솔루션이 뜰 것이다. 이제 솔루션위치에서 소스제어에 솔루션 추가를 선택하여 해당 소스제어 서버에 소스를 등록하도록 한다. (필요에 따라서는 솔루련이 아닌 프로젝트만 추가할 수도 있다)


2. Hind 만의 SQL 버젼관리 방법

이 SSMS에서의 버전관리는 애석하게도 DB에 대한 스키마를 관리하지는 않는다. 단지 각종 Query나 연결정정보에 대해서만 관리하게 된다. 간단해서 좋기는 하지만, 역시 세밀한 작업을 수행하기에는 문제가 있다. 혹시나 DB를 직접 버전관리를 하지 않을까 상상하신 분들은 이 버전관리 방법과는 맞지 않다. !!! 주의해주셔야 할 부분이다. 여튼 쿼리만이라도 버전 관리를 하겠다면 계속 진행하면 좋을 것 같다.

일단, 괸리를 할 때 나름대로 사용해 본 결과 제한 요건들이 많이 보인다. ( 2008용에서는 개선되지 않았을 까 조심스럽게 짐작해 본다. ) 그래서 그 제한 요건을 고려하면서 생각해본 결과 아래와 같은 방법을 정리할 수 있었따.

  1. 쿼리 동작 형태에 따라 프로젝트를 만들어 구성한다.
    쿼리를 만들다보면 보통 CRUD, 즉 Create Read Update Delete 와 같은 Action 별로 쿼리가 생긴다. 그런데 Visual Stdio와는 다르게 프로젝트 내에 새로운 Folder 추가가 되지 않느다. 무조건, 연결, 쿼리, 기타 이렇게 3가지의 폴더 안에 모든 파일을 때려 박게 될 것이다. 간단한 DB 업무야 그냥 그냥 쭉 넣는다고 하지만, 규모가 있다보면 Create 쿼리만으로 트리를 가득 매꾸게 된다.  이런 경우를 대비해 각 동작별로, 혹은 별도의 분류 규칙에 따라 새로운 프로젝트를 생성하도록 한다.
    즉 생성용 프로젝트, 업데이트용 프로젝트, 테스트 쿼리용 프로젝트 등등을 만들어 구성하는 것이다. 최소한 이처럼 구성하면 작업하는데 훨씬 수월 할 것이다.
  2. 네이밍 룰을 맞추어 구성한다.
    분류별로 프로젝트로 구성한다고 해도, 결국 많은 수의 쿼리들이 한줄로 나래비를 펼칠 것이다. 최소한 이런 형태가 계속 지속될 수밖에 없기 때문에, 분류하게 좋은 형태의 묹열 나열이 필요로 한다.
    가급적 Action 별로 네이밍을 구성하여 나중에 해당 쿼리를 찾아보기 쉽게 구성하는 것이 좋다.
  3. ALTER 문장이 정상적으로 동작하는지 미리 테스트를 한다.
    사실 여러 팀작업을 하게 되면 결국 테이블 구조나 DB 구조를 변경하게 된다. 이 때 사용되는 명령이 ALTER인데, 이 ALTER는 다양한 상황에 따라 동작 여부가 갈린다. 그런 경우 이전에 어떤 DB가 들어 있는지에 따라 ALTER의 형태가 바뀔 수 밖에 없을 것이다. 만일 ALTER가 전혀 안될 것 같은 경우 이전 버전의 DB에서 비정상적으로 동작할 수 있다. 반드시 체크한 뒤 배포하도록 한다.

이상이 현재 DB 에서 사용하는 버전 관리인 것 같다. 물론 제한적이며 기능적으로 한계가 많고, DB를 직접하는 것이 아닌 거의 쿼리만을 처리하는 것이기 때문에, 원하지 않을  수 았을 것이다  하지만, 최소한 버전관리도구를 써서 협업을 하고 있다면 도전 해보는 것이 어떨 까 싶다.

728x90

+ Recent posts