저장 프로시저를 조회하고 수정할 때 어떻게 하시는지요?
아마 대다수의 개발자 분들이 아래 스샷의 방법을 사용하고 있으리라 생각합니다.
저도 현업에 발을 들인 이후 한참 동안이나 이런 방법을 사용해 왔습니다.
그러다 모듈 별로 버전 관리가 필요하다는 걸 느꼈고, 당시 선택했던 방법은 Visual Source Safe 사용이었습니다.
모듈 하나 하나를 파일로 만들어 관리했죠.
그런데, 이 방법에도 문제가 있었습니다.
아무리 주의를 기울여도... 개발 DB와 소스 파일의 싱크가 어긋나는 일이 발생하더군요. 한 100개에 1개 정도?
그러던차에 SQL 2005를 접했고, DDL트리거를 사용해 보기로 했고... 그 산출물이 지금 강좌를 진행하고 있는 Sequel Safe입니다.
각설하고...
몇 가지 이유로 인해 SP, UDF, Trigger에 대해서는.. ALTER문을 사용하지 못하도록 막았습니다.
만약 위 스샷에서의 방법으로 SP를 수정하려고 한다면... 아래와 같은 메세지를 보게 됩니다.
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 가 다시 체크 인 되어 있는 것을 확인할 수 있습니다.
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를 실행하면 됩니다.
아마 대다수의 개발자 분들이 아래 스샷의 방법을 사용하고 있으리라 생각합니다.
저도 현업에 발을 들인 이후 한참 동안이나 이런 방법을 사용해 왔습니다.
그러다 모듈 별로 버전 관리가 필요하다는 걸 느꼈고, 당시 선택했던 방법은 Visual Source Safe 사용이었습니다.
모듈 하나 하나를 파일로 만들어 관리했죠.
그런데, 이 방법에도 문제가 있었습니다.
아무리 주의를 기울여도... 개발 DB와 소스 파일의 싱크가 어긋나는 일이 발생하더군요. 한 100개에 1개 정도?
그러던차에 SQL 2005를 접했고, DDL트리거를 사용해 보기로 했고... 그 산출물이 지금 강좌를 진행하고 있는 Sequel Safe입니다.
각설하고...
몇 가지 이유로 인해 SP, UDF, Trigger에 대해서는.. ALTER문을 사용하지 못하도록 막았습니다.
만약 위 스샷에서의 방법으로 SP를 수정하려고 한다면... 아래와 같은 메세지를 보게 됩니다.
참고로.. 위 스샷은 조금 잘 못 되었습니다.
실제로는 빨간색으로 시스템 에러메세지가 추가됩니다.
DDL문의 실행이 롤 백 되었다는 의미이니 걱정하지 않으셔도 됩니다. ^^
실제로는 빨간색으로 시스템 에러메세지가 추가됩니다.
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 을 실행하면 됩니다.
그런 경우엔 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를 실행하면 됩니다.
'SQL Server > SQL Server 형상 관리' 카테고리의 다른 글
[Sequel Safe] 데이터베이스 빌드와 배포 (0) | 2009.04.15 |
---|---|
[Sequel Safe] SQL 서버 Login 권한 정책 및 물리 모델 변경 제약 (6) | 2009.04.11 |
[Sequel Safe] 발판 코드 or CRUD 코드를 이용하여 SP작성하기 (0) | 2009.04.11 |
[Sequel Safe] 에러 핸들링 (下) (3) | 2009.04.11 |
[Sequel Safe] 에러 핸들링 (上) (0) | 2009.04.10 |