レポートをサポートするために、テーブル、関数、ビュー、およびプロシージャ スクリプトを多数作成しました。環境が複雑なため、スクリプトの移行 (開発 -> テスト) は面倒な場合があります。
DBA は、開発者がプライマリ テーブルスペース ('VENDOR') もメイン スキーマ ('UTIL'、'REPORTING') も使用することを許可しません。UTIL スキーマは、関数とプロシージャを対象としています。REPORTING はテーブルとビュー用です。
開発サーバーは他の目的で再委託されることが多いため、開発テーブルスペース (「DEVL」) と各開発者のスキーマ (「CRAIG」など) を使用して、テスト サーバーで開発が行われます。
その結果、テーブルのスクリプトは次のものから変換する必要があります。
DROP TABLE CRAIG.X_TABLE;
CREATE TABLE CRAIG.X_TABLE;
...
TABLESPACE "DEVL";
に:
DROP TABLE REPORTING.X_TABLE;
CREATE TABLE REPORTING.X_TABLE;
...
TABLESPACE "VENDOR";
ビューのスクリプトを次から変更する必要があります。
CREATE OR REPLACE VIEW CRAIG.X_VIEW
...
;
に:
CREATE OR REPLACE VIEW REPORTING.X_VIEW
...
;
プロシージャのスクリプトを次から変更する必要があります。
CREATE OR REPLACE PROCEDURE CRAIG.X_PROCEDURE
...
INSERT INTO CRAIG.X_PROCEDURE
SELECT ...
-- reference a table in REPORTING schema
FROM REPORTING.ANOTHER_TABLE
;
に:
CREATE OR REPLACE PROCEDURE UTIL.X_PROCEDURE
...
INSERT INTO REPORTING.X_PROCEDURE
SELECT ...
FROM REPORTING.ANOTHER_TABLE
;
ご覧のとおり、テーブル スクリプトとプロシージャ スクリプトには、最も介入が必要です。
違いがあれば、コーディングには SQL Developer、TextMate、Sublime Text 2 を使用し、組織の Subversion (SVN) リポジトリとのやり取りには Cornerstone を使用します。
ロジックを開発環境からテスト環境に移行するときに、各タイプのスクリプトに必要な変更を簡素化 (自動化) する方法はありますか?