これは、あなたの環境に非常に依存するため、簡単な料理本の回答はないと思います。何を思いついても、スクリプトベースのアプローチを強くお勧めします。展開スクリプトはソース管理自体にあります。これらのスクリプトはビルドソリューションとのより良い統合を可能にします(下記参照)。
プロダクション環境で実行する最も簡単なスクリプトは、ソース管理から最新の(または特定のバージョンを取得する)コマンドです。
次の課題は、データベースの展開です。私が小規模から中規模のプロジェクトで最も好むようになったソリューションは、各データベースにスキーマバージョンテーブルを維持し、すべてのDDLとデータ更新スクリプトをソース管理(圧縮アーカイブで使用するデータソースを含む)することです。スクリプトは連続して番号が付けられ(000001 ...、000002 ...など)、実行するデプロイメントスクリプトはまず既存のデータベースをバックアップしてから、最後に実行されたデータベーススクリプトをスキーマバージョンテーブルから取得して実行しますソース管理で正しい順序で新しいデータベーススクリプトが見つかった場合は、それに応じてスキーマバージョンテーブルを更新します。
このアプローチを使用すると、データベースをゼロからすばやく再構築できます。一緒に二つのアプローチが急速に少しだけより複雑なシナリオについてなど、いくつかの異なるステージングマシンにあなたのコードベース、あなたのQA環境、ベータ、
を展開することを可能にする
、あなたがすべきKieveliらのように、統合ビルドサーバーを継続して実行します。 al。基本的には展開全体を定期的に "再構築"するため、上記の "手動で"実行するスクリプトを正確に実行するスクリプトが含まれています。
各データベーススクリプト用のロールバックスクリプトを作成することで、データベースのデプロイメントをより洗練されたものにすることもできます。あなたはそれらを処理するために少しコントローラアプリを書く必要があります。この種のものにはいくつかのOSSソリューションがあり、そのうちの1つはニーズに合っているかもしれません。 PHPプロジェクトの
しかし、本番環境にデータベースを自動展開したことがないことを確認します;-)
ハドソンは素晴らしいです。 – stimms