これは環境に大きく依存するため、これに対する簡単なクックブックの答えはないと思います。何を思いついたとしても、スクリプト ベースのアプローチを強くお勧めします。デプロイ スクリプト自体がソース管理されます。これらのスクリプトは、ビルド ソリューションとのより良い統合も可能にします (以下を参照)。
実稼働環境で実行する最も単純なスクリプトは、ソース管理から最新 (または特定のバージョン) を取得するコマンドです。
次の課題は、データベースの展開です。小規模から中規模のプロジェクトで私が最も気に入ったソリューションは、各データベースでスキーマ バージョン テーブルを維持し、すべての DDL およびデータ更新スクリプトをソース管理 (圧縮アーカイブで使用するデータ ソースを含む) に含めることです。スクリプトには連続した番号が付けられ (000001 ...、000002 ... など)、実行するデプロイ スクリプトは、最初に既存のデータベースをバックアップし、最後に実行されたデータベース スクリプトをスキーマ バージョン テーブルから取得して実行します。ソース管理で見つかった新しいデータベース スクリプトを正しい順序で並べ替え、それに応じてスキーマ バージョン テーブルを更新します。
このアプローチにより、データベースを最初から非常に迅速に再構築できます。
2 つのアプローチを組み合わせることで、コード ベースを複数の異なるステージング マシン、QA 環境、ベータ版などにすばやく展開できます。
もう少し複雑なシナリオでは、Kieveli などの継続的な統合ビルド サーバーを実行する必要があります。アル。これは基本的に展開全体を定期的に「再構築」するため、上記の「手動で」実行することを正確に行うためのスクリプトが含まれています。
データベース スクリプトごとにロールバック スクリプトを作成することで、データベースの展開をより高度にすることもできます。次に、それらを処理するための小さなコントローラー アプリを作成する必要があります。この種のものにはいくつかの OSS ソリューションがあり、そのうちの 1 つがニーズに合うかもしれません。
ただし、データベースを本番環境に自動展開しないようにしてください;-)