2

私は現在、現在のバージョンの製品が複数のクライアント サイトに展開されるプロジェクトに取り組んでいます。多くの場合、開発/テスト環境で DB 設計をテストしてスクラップ (別名リファクタリング:) します。DB へのすべての増分変更を追跡して、対応する「移行ファイル」を作成することはできません。そして、DB 設計 (比較的安定している) に満足したら、本番 DB を現在の状態に更新する必要があります。

本番環境のシステムではDROP/CREATE SCHEMA、スキーマを更新するためのコマンドを発行することはできません (失われるジョブを考えてみてください。私のものも含まれます :) そのため、MySQL ダンプまたはアプリケーション ラッパーを作成してデータをバックアップし、再入力することになります。 DBに。特に複数の「クライアント」が同じ DB バージョンでない場合は、非常に面倒です。クライアントが持っているバージョンごとに 1 つを作成するのは非常に面倒です。

では、本番環境でデータベースをリファクタリングするために採用するベスト プラクティスにはどのようなものがありますか。特に、そのデータを削除するだけではなく、再入力する必要があり、「ダウンタイム」の後にシステムをシームレスに続行する必要がある場合はどうすればよいでしょうか?

何らかの用途がある場合、バックエンドは Java/Restlet と MySQL です。

4

1 に答える 1

2

Refactoring Databasesという書籍で説明されているデータベース リファクタリング パターンを使用できます。また、データベース リファクタリングの Web サイトhttp://databaserefactoring.com/を参照してください。移行アプローチを使用すると、データベースを削除して作成する必要はありません。[dbdeploy]、[dbmaintain]、[ibatis migrator]、[liquibase] などのツールがここで役に立ちます。

于 2012-06-26T13:42:22.377 に答える