私たちのソース管理における足の簡素化外観は次のようになります。
\DatabasePatches
\Core
\Data
\DatabaseSource
\Core
\SchemaA
\SchemaB
\SchemaC
DDL作業の特定のチャンクのために書かれたとDML /移行がデータパッチの下にチェックインしてコアパッチの下でチェックされています。パッチ・ラベルの一部はシーケンス番号であり(パッチを今後挿入するたびに10を手動で追加する)、パッチは「DATAPATCH01530 - migrate of xyz.sql」と呼ばれることがあります。
新しい環境に展開するときは、すべてのコアパッチが実行され、データパッチが実行されます。コアパッチの次の部分で重要なDMLがある場合、そのコアパッチに含まれることがあります。
パッチが新しい場所で初めて実行されると、ファイルはソースコントロールでFINALとマークされます(PVCSを使用し、FINALというユーザーでファイルをロックします)。矛盾を引き起こします。追加の変更は、別個のパッチに含める必要があります。
ストアドプロシージャ、関数、パッケージなどは、DatabaseSourceレッグの下に保存され、チェックインされます。スクリプトを実行する前にこれらのオブジェクトが宣伝されているかどうかを保証することはできませんので、スクリプトでスタブを作成することで対応します(例:SELECT '1' FROM dual、パッケージにはダミープロシージャが含まれます)存在し、特権などを与えることができます。実際のオブジェクトが昇格されると、それはスタブを置き換えて特権を保持します。
にアクセスできますか?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) –