우리의 소스 제어에서 다리에서 단순화 된 모습은 다음과 같습니다
\DatabasePatches
\Core
\Data
\DatabaseSource
\Core
\SchemaA
\SchemaB
\SchemaC
DDL 작업의 특정 덩어리 작성 및 데이터 패치에서 체크인 DML/이주 핵심 패치 아래에 체크하십시오. 패치 레이블의 일부는 순차 번호이며 패치가 나중에 "DATAPATCH01530 - migrate of xyz.sql"이라고 불릴 수 있도록 순차 번호입니다 (수동으로 패치를 삽입 할 때마다 10을 수동으로 추가합니다).
새 환경에 배포 할 때 모든 핵심 패치가 실행되고 데이터 패치가 실행됩니다. 핵심 패치의 다음 부분에 중요한 DML이있는 경우 해당 핵심 패치에 포함될 수 있습니다.
새 위치에서 처음 패치를 실행하면 파일은 소스 컨트롤에서 FINAL로 표시됩니다 (우리는 PVCS를 사용하고 FINAL이라는 사용자로 파일을 잠급니다). 불일치가 발생합니다. 추가 변경 사항은 별도의 패치에 포함되어야합니다.
저장 프로 시저, 함수, 패키지 등은 DatabaseSource 레그에서 저장되고 체크 인됩니다. 스크립트가 실행되기 전에 이러한 객체가 승격되었는지 보장 할 수 없으므로 스크립트에서 스텁을 생성하여 (예를 들어 뷰가 SELECT '1'로 이중으로 생성되고 패키지에는 더미 프로 시저가 포함됨) 객체를 보장합니다 존재하고 당신에게 특권 등을 줄 수 있습니다. 실제 객체가 승격되면 스텁을 대체하고 특권을 유지합니다.
에 로그인 할 수 있습니다. http://stackoverflow.com/questions/706026/706596#706596 및 그 다양한 링크를 보았습니까? – dpbradley
저는 스크립트 구성 및 후속 배포, 우선 순위 문제 처리 등을위한 지침/우수 사례를 더 찾고 있습니다.하지만 질문에 대한 답변을 주셔서 감사합니다. –
이 [관련 스택 오버플로 게시물에 몇 가지 의견을 넣어 (http://stackoverflow.com/questions/706026/how-do-you-work-on-oracle-packages-in-a-collaborative-version-controlled) -environ/7122534 # 7122534) –