본문 바로가기

SQL Server/SQL Server 형상 관리

[Sequel Safe] Programmability 버전 관리

저장 프로시저를 조회하고 수정할 때 어떻게 하시는지요?

아마 대다수의 개발자 분들이 아래 스샷의 방법을 사용하고 있으리라 생각합니다.



저도 현업에 발을 들인 이후 한참 동안이나 이런 방법을 사용해 왔습니다.

그러다 모듈 별로 버전 관리가 필요하다는 걸 느꼈고, 당시 선택했던 방법은 Visual Source Safe 사용이었습니다.

모듈 하나 하나를 파일로 만들어 관리했죠.

그런데, 이 방법에도 문제가 있었습니다.

아무리 주의를 기울여도... 개발 DB와 소스 파일의 싱크가 어긋나는 일이 발생하더군요. 한 100개에 1개 정도?

그러던차에 SQL 2005를 접했고, DDL트리거를 사용해 보기로 했고... 그 산출물이 지금 강좌를 진행하고 있는 Sequel Safe입니다.

각설하고...

몇 가지 이유로 인해 SP, UDF, Trigger에 대해서는.. ALTER문을 사용하지 못하도록 막았습니다.

만약 위 스샷에서의 방법으로 SP를 수정하려고 한다면... 아래와 같은 메세지를 보게 됩니다.



참고로.. 위 스샷은 조금 잘 못 되었습니다.
실제로는 빨간색으로 시스템 에러메세지가 추가됩니다.
DDL문의 실행이 롤 백 되었다는 의미이니 걱정하지 않으셔도 됩니다. ^^



Sequel Safe에서는... 모듈 목록 > 모듈 소스 확인 > 체크 아웃 > 모듈 수정 > 체크 인 의 절차를 따라야 합니다.


I. 모듈 목록 조회

제 설정에서는 단축키 Ctrl + 8이고, 직접 타이핑 하신다면 sp_modulelist 입니다.

실행 결과는 보시는 바와 같습니다. 공통 모듈 5개와... 이전 포스트에서 작성했던 P_AddCategory가 보이는군요.

공통 모듈의 description이 영문인 이유는... 이걸 처음 만들기 시작했을 때 다녔던 회사가 외국계였기 때문입니다. ^^;





II. 소스 조회 + 체크인

소스를 수정할 생각이 없이 조회만 한다면 sp_viewmodule P_AddCategory를 실행합니다. (단축키 : Ctrl + 9)

소스를 수정할 거라면 sp_editmodule P_AddCategory를 실행합니다.
소스가 출력되고 동시에 체크 아웃 됩니다. (단축키 : Ctrl + 0)

sp_editmodule을 사용해 모듈을 체크 아웃하지 않으면, 편집한 모듈을 적용할 수 없습니다.

아래 스샷은 sp_editmodule의 실행 결과 화면입니다.




잠깐 모듈 목록을 다시 조회해 볼까요? (sp_modulelist를 실행합니다. 단축키 : Ctrl + 8)

5행을 보면 P_AddCategory 가 체크아웃 되었음을 확인할 수 있습니다.

당연한 얘기지만 이 상태에서는 다른 개발자가 P_AddCategory를 수정할 수 없습니다.
단, 모든 개발자는 각자의 로그인 계정을 가지고 있어야합니다. (AD 계정 사용을 추천합니다.)





III. 모듈 수정 + 체크 인

소스를 편집창으로 복사-붙여넣기하고, 소스를 수정합니다.

저는 테스트로 description만 아래와 같이 수정했습니다.

수정하고 실행하면 자동으로 체크 인 됩니다




실행한 후 다시 모듈 목록을 조회하면, 아래 스샷 처럼P_AddCategory 가 다시 체크 인 되어 있는 것을 확인할 수 있습니다.

체크 아웃 했다가 소스를 수정할 필요가 없어져... 체크 아웃을 취소해야하는 경우가 있습니다.

그런 경우엔 sp_checkinmodule P_AddCategory를 실행하시면 됩니다. (단축키 : Ctrl + F1)

만약, 본인이 체크 아웃한 모든 모듈에 대해 체크 아웃을 취소해야한다면, sp_checkinmodule 을 실행하면 됩니다.






IV. 변경 이력 및 과거 소스 조회

※ 이하의 내용은 SQLSafe Build 13에서 다소 변경 되었습니다.
2009/06/22 - [Sequel Safe] - [Sequel Safe / update] build 13 변경 사항

sp_objecthistory

sp_objecthistory P_AddCategory를 실행하면, 아래와 같이 변경 이력이 출력됩니다.




현재 버전은 25이고, 이전 버전은 23이군요.


sp_viewddllog

각각의 소스를 조회하려면... sp_viewddllog 23 / sp_viewddllog 25를 실행하면 됩니다.