DB スキーマの変更を追跡および/または自動化するための最良の方法は何ですか? 私たちのチームはバージョン管理に Subversion を使用しており、この方法で一部のタスクを自動化できました (ステージング サーバーへのビルドのプッシュ、テスト済みコードの運用サーバーへのデプロイ) が、データベースの更新は手動で行っています。コードと DB の更新をさまざまなサーバーにプッシュするバックエンドとして Subversion を引き続き使用しながら、さまざまな環境のサーバー間で効率的に作業できるソリューションを見つけるか作成したいと考えています。
多くの一般的なソフトウェア パッケージには、DB のバージョンを検出して必要な変更を適用する自動更新スクリプトが含まれています。大規模な場合でも (複数のプロジェクトや複数の環境や言語にまたがって)、これを行うための最良の方法はありますか? もしそうなら、プロセスを簡素化する既存のコードはありますか、それとも独自のソリューションを展開するのが最善ですか? 誰かが以前に似たようなものを実装し、それを Subversion のコミット後のフックに統合したことがありますか? それとも、これは悪い考えですか?
複数のプラットフォームをサポートするソリューションが望ましいですが、作業の大部分が Linux/Apache/MySQL/PHP スタックをサポートする必要があります。