私は現在、現在のバージョンの製品が複数のクライアント サイトに展開されるプロジェクトに取り組んでいます。多くの場合、開発/テスト環境で DB 設計をテストしてスクラップ (別名リファクタリング:) します。DB へのすべての増分変更を追跡して、対応する「移行ファイル」を作成することはできません。そして、DB 設計 (比較的安定している) に満足したら、本番 DB を現在の状態に更新する必要があります。
本番環境のシステムではDROP/CREATE SCHEMA
、スキーマを更新するためのコマンドを発行することはできません (失われるジョブを考えてみてください。私のものも含まれます :) そのため、MySQL ダンプまたはアプリケーション ラッパーを作成してデータをバックアップし、再入力することになります。 DBに。特に複数の「クライアント」が同じ DB バージョンでない場合は、非常に面倒です。クライアントが持っているバージョンごとに 1 つを作成するのは非常に面倒です。
では、本番環境でデータベースをリファクタリングするために採用するベスト プラクティスにはどのようなものがありますか。特に、そのデータを削除するだけではなく、再入力する必要があり、「ダウンタイム」の後にシステムをシームレスに続行する必要がある場合はどうすればよいでしょうか?
何らかの用途がある場合、バックエンドは Java/Restlet と MySQL です。