2012-02-08 3 views
1

어떻게 든 pl SQL 패키지의 로컬 버전을 데이터베이스에 저장된 것과 비교해야합니다. 어떤 "쉬운"방법이 있습니까? 현재 데이터베이스에서 패키지를 다운로드하고 일부 파일에 저장하고 diff 도구를 사용하여 diff를 수행합니다. 그건 좀 번거롭기 때문에 ide (SQL 개발자는 더 좋다)와 같은 기능을 갖고 싶습니다.데이터베이스 패키지가 포함 된 diff 로컬 패키지

+0

많은 diff 도구가 있습니다. Eclipse (또는 SQL Developer 또는 Toad 또는 다른 ides)와 같은 클라이언트를 통해 최신 버전의 변경 사항을 쉽게 수행 할 수있는 소스 제어에 CVS 또는 Subversion을 사용하지 않는 이유는 무엇입니까? – tbone

+0

@tbone, 어떻게 Subversion은 로컬 패키지 파일을 데이터베이스에있는 파일과 비교할 수 있습니까? –

+0

변경 한 내용이있는 로컬 작업 영역이 있으며 소스 제어에서 최신 버전 또는 다른 버전과 비교할 수 있습니다. – tbone

답변

3

일반적으로 개발자는 버전 관리 소프트웨어를 사용하여 차이점을 확인하고 버전 기록을 유지하며 팀 개발 코드를 조정할 수 있습니다. PL/SQL 코드는 달라야합니다. 코드 릴리즈를 처리 할 수있는 여러 가지 방법이 있습니다. 다음은 필자가 본 것인데 반드시 "최상의"방법은 아닙니다.

본 Oracle 환경에서는 CVS 또는 SVN이 사용되었습니다. 대부분의 접근법은 저장소에서 최신 코드를 체크 아웃하고, 편집 (태깅/브랜칭), 체크 인을 포함합니다. 코드가 테스트되고 (개발 인스턴스) 릴리스가 준비되면 DBA는 저장소에서 릴리스 스크립트를 가져 와서 적용합니다. 올바른 릴리스 스크립트를 DBA에게 넘겨주는 임무가 있습니다 (내 경험에서 더 일반적 임). 일반적으로 데이터베이스는 프로덕션 인스턴스를 미러링하는 사용자 수락 인스턴스입니다. 앱 테스트가 통과되면 코드가 프로덕션으로 승격됩니다.

데이터베이스와 IDE간에 직접 동기화하려면 Toad Team Coding이 필요합니다. Toad는 무료가 아니며이 옵션을 사용하려면 데이터베이스에 추가 객체 (메타 데이터/추적 테이블 등)가 설치되어 있어야합니다. 좋은 overview is found here 및 좋은 설치 기사 is found here.

팀 코딩은 매우 멋지지만 개발 환경에만 설치합니다. 시스템에서 코드를 승격시키는 방법은 귀하에게 달려 있습니다.

0

sqlplus 명령 파일을 사용하여 설명한 절차를 자동화하는 것이 매우 쉽습니다. all_source에서 선택하여 파일에 스풀링하십시오. 명령 파일에서 diff 명령을 "host diff ..."또는 "! diff ..."로 호출하십시오. diff에 대한 -b 및 -B 옵션은 각각 공백과 빈 줄을 무시합니다.