공동 작업 버전 제어 환경에서 Oracle 패키지에서 어떻게 작업합니까?

StackOverflow https://stackoverflow.com/questions/706026

  •  22-08-2019
  •  | 
  •  

문제

나는 큰 패키지로 Oracle의 다중 개발자 환경에서 일하고 있습니다. dev => tst => PRD 프로모션 패턴이 있습니다. 현재 모든 패키지 편집은 Toad에서 직접 작성한 다음 DEV 패키지로 컴파일됩니다.

우리는 두 가지 문제를 해결합니다.

  1. 동시 변경은 다른 일정에서 홍보해야합니다. 예를 들어, 개발자 A는 내일 홍보해야 할 변경을 수행하는 동안 개발자 B는 동시에 2 주 동안 홍보되지 않는 변경 사항을 동시에 작업하고 있습니다. 홍보 시간이 오면, 우리는 아직 홍보되지 않은 물건을 수동으로 댓글을 달고 나중에 그것을 무너 뜨린다는 것을 알게됩니다 ... yuck !!!

  2. 두 개발자가 동일한 시간에 변경을하고 그 중 하나가 컴파일된다면 다른 개발자의 변경 사항을 제거합니다. 좋은 병합은 없습니다. 대신 최신 컴파일이 승리합니다.

이 문제를 해결하기 위해 어떤 전략을 추천 하시겠습니까? 우리는 소스 제어에 TFS를 사용하고 있지만 아직 Oracle 패키지와 함께 사용하지 않았습니다.

추신 나는 본 적이 이것 게시하지만 내 질문에 완전히 대답하지는 않습니다.

도움이 되었습니까?

해결책

우리는 사용 Visual Studio.net 용 Oracle 개발자 도구... 바로 TFS로 연결됩니다

다른 팁

열쇠는 소스 제어 시스템에서 코드 만 배포하는 관행을 채택하는 것입니다. TSF에 익숙하지는 않지만 분기, 태그 등의 개념을 구현해야합니다. 배포 할 내용에 대한 질문은 소스 제어 시스템에서 빌드에서 벗어나 릴리스 태그를 벗어납니다.

추가 팁 (Oracle의 경우) :

  • 패키지 사양과 본문을 각 파일로 분할하는 경우 가장 잘 작동합니다. 각 파일 (예 : 패키지 사양의 경우. 파일 패턴을 처리 할 수있는 자동 빌드 프로세스를 사용하면 모든 사양과 본문을 구축 할 수 있습니다. 또한 패키지 본문 만 배포하는 경우 객체 무효화를 최소화합니다.

  • 소스 제어 시스템의 릴리스 또는 빌드 상태에서 구동되는 자동화 된 빌드 프로세스를 구성하는 데 시간을 투자하십시오. 적당한 수의 DB 코드 개체가있는 경우 코드를 참조 시스템으로 빌드하여 QA 또는 생산 시스템과 비교할 수 있습니다.

보다 내 대답 ~에 대한 팀의 Oracle에서 저장된 절차를 사용하는 도구 (방금 다시 시작했습니다).

결론 : 두꺼비로 직접 절차를 수정하지 마십시오. 소스를 파일로 저장하고 소스 컨트롤에 저장하고 수정 한 다음 실행됩니다.

또한 각 개발자는 자체 데이터베이스 사본 (Oracle Express 사용)에서 작업하는 것이 좋습니다. 모든 스크립트를 저장하여 소스 컨트롤에서 데이터베이스를 작성하면 그렇게 할 수 있습니다. 더 많은 통찰력 여기에서 찾을 수 있습니다.

2 명의 개발자가 동시에 동일한 패키지에서 작업하는 것을 피하려면 다음과 같습니다.

1) 버전 제어 시스템을 패키지 코드의 소스로 사용하십시오. 패키지에서 작업하려면 개발자는 먼저 버전 컨트롤에서 패키지를 확인해야합니다. 이 개발자가 다시 확인할 때까지 다른 사람은 패키지를 확인할 수 없습니다.

2) 두꺼비 나 다른 IDE의 패키지 코드에서 직접 작업하지 마십시오. 당신은 가지고 있습니다 실마리 없음 귀하가 작업중인 코드가 올바른지 또는 한 명 이상의 다른 개발자가 수정했는지 여부. 버전 컨트롤에서 체크 아웃 한 스크립트의 코드 작업을 수행하고 데이터베이스로 실행하여 패키지를 컴파일하십시오. 내가 선호하는 것은 멋진 텍스트 편집기 (TextPad)와 SQL Plus를 사용하는 것이지만 두꺼비에서도 이것을 할 수 있습니다.

3) 완료되면 스크립트를 버전 제어로 다시 확인하십시오. 하지 마라 데이터베이스에서 코드를 스크립트로 복사하여 붙여 넣습니다 (다시 2 점 참조).

이 제어 된 접근 방식의 단점 (하나 인 경우)은 한 번에 한 명의 개발자 만 패키지에서 작동 할 수 있다는 것입니다. 이것은 다음과 같이 큰 문제가되어서는 안됩니다.

  • 패키지를 합리적인 크기로 보관합니다 (코드의 코드 또는 절차 수가 아닌 작업 측면에서). 모든 코드를 보유하는 큰 패키지가 하나도 없습니다.
  • 개발자는 작업 준비가 될 때만 코드를 확인하고 변경 및 테스트를 마치 자마자 다시 확인하는 것이 좋습니다.

우리는 모든 스트림에 대한 개발자 데이터베이스와 다른 스트림에 대한 레이블로 수행합니다.

우리의 Oracle 라이센스는 우리에게 무제한 DEV/테스트 인스턴스를 제공하지만 ISV이지만 다른 라이센스 옵션이있을 수 있습니다.

VS에 Oracle Developer 도구를 사용할 수 있거나 SQL 개발자를 사용할 수 있습니다. SQL 개발자는 전복 및 CV와 통합되며 무료로 다운로드 할 수 있습니다. 여기를 봐: http://www.oracle.com/technology/products/database/sql_developer/files/what_is_sqldev.html

우리는 TFS 2008에 대한 TFS MSSCCI 제공 업체와 함께 Oracle 용 Toad를 사용합니다. 맞춤형 도구 데이터베이스 checkins를 소스 컨트롤에서 가져 와서 릴리스를 위해 패키지합니다.

내가 아는 한 Visual Studio.net 용 Oracle Developer Tools에는 TFS 등의 실제 소스 제어 통합이 없습니다.

당신은 고려할 수 있습니다 비주얼 스튜디오를위한 두꺼비 확장 저렴하지는 않지만 아마도 4K $라고 생각합니다.

또 다른 옵션은 Oracle Change Management Pack 그러나 훨씬 더 비싼 오라클의 엔터프라이즈 에디션이 필요하다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top