2012-06-08 2 views
0

는 내가 생산으로 이동할 때 모든 개체를 만들 수있는 스크립트를 실행할 수 있도록 내 모든 함수, 프로 시저, 패키지, 뷰 및 테이블에서 코드 (스크립트)을 추출해야 객체.추출 코드 나 스크립트는

나는 모든 데이터베이스 개체의 스크립트 백업을 수행하지 않은 개발하는 동안.

코드 나 스크립트를 추출하는 가장 좋은 방법은 무엇입니까? 모든 제안이나 도움은 매우 주목할 만하다.

감사

답변

6

버전 관리 시스템을 사용 하시겠습니까? 제발. 당신은 DDL의 CLOB를 반환 시스템 기능 dbms_metadata.get_ddl를 사용할 수 있습니다

실패는 객체를 생성하는 데 사용됩니다. 이 작업은 각각의 개체에 대해 수행해야하므로 user_objects을 반복 할 가치가 있습니다.

또는 오브젝트를 마우스 오른쪽 버튼으로 클릭하고 view 옵션을 사용하여 정의를 수행 할 수 있습니다. 그런 다음 오른쪽 하단에서 오브젝트 작성에 사용 된 SQL을 볼 수 있습니다.

export "tool"도 있는데, SQL Developer 변형으로 사용하는 방법에 대한 설명이 적절하지 않습니다. 물론

는 정답은 버전 제어 시스템을 얻을 사용할 수 있습니다.

+0

은 데이터베이스 버전 관리 기능을 통합 할 수 있습니까? – user75ponic

+2

내가 아는 것은 아닙니다.모든 개체 DDL을 테이블에 저장하여 자신 만의 테이블을 만들 수도 있지만 모든 것을 잃을 수 있기 때문에 여전히 안전하지는 않습니다. VCS의 모든 폴더를 반복하여 스크립트를 실행하는 한 줄짜리 스크립트 만 있습니다. – Ben

+0

예 VCS는 좋은 옵션입니다. 고마워. – user75ponic

1

나는 데이터베이스 자체에 대해 잘 모르지만, SQL Developer는 그것을 할 것입니다. 나는 TOAD와 다른 도구들이 잘 될 것이라 확신합니다.

0

미안하지만 당신은 한 개발자 이상으로 확장하지 않는 비 최적의 개발 사례가있다.

SQL GUI 클라이언트의 기능을 사용하여 데이터베이스 개체를 직접 편집하지 마십시오. (당신이 의도적으로 인공적인 문제를 만들려고하지 않는 한.)

대신 모든 SQL 및 PL/SQL DDL 및 DML이 version control system (VCS)에 저장된 텍스트 파일에 있어야합니다 (예를 들어 subversion, git, mercurial). favorite editor을 사용하여 파일을 편집하십시오.

VCS에 저장된 텍스트 파일을 명령 줄 도구 (Oracle에서는 sqlplus)로 실행하여 데이터베이스를 수정합니다. 이는 모든 데이터베이스 인스턴스에 적용됩니다 (개발, QA, 생산).

큰 개발 프로젝트의 경우 schema migration 도구 (예 : Flyway, Roundhouse)를 사용하는 것이 좋습니다. 나는 간단한 규칙을 적용하여 개발 및 생산 문제의 톤을 제거 할 수 있었다 몇 년 동안

:

코드가 존재하지 않는 VCS에없는 경우.

(그것은 여전히 ​​2015 년 많은 개발 팀이 VCS를 사용하지 거기에 그 놀라운.)