2 つの MySQL データベース スキーマを同期できる移植可能なスクリプトまたはコマンド ライン プログラムを探していました。GUI ベースのソリューションを探しているわけではありません。これは、buid/deployment ツールで自動化または実行できないためです。
基本的に、データベース 1 とデータベース 2 をスキャンする必要があります。スキーマの違い (テーブルとインデックス) を確認し、1 つの SQL ステートメントを実行することを提案して、他の SQL ステートメントと同様の構造を取得し、データの損傷を可能な限り最小限に抑えます。
このタイプのソリューションが実装されている PHP、Python、または Ruby パッケージを誰かが示すことができれば、そこからコードをコピーすることを試みることができます。
おそらく多くの MySQL GUI ツールでこれを行うことができますが、スクリプト可能なソリューションを探しています。
編集:より明確でなくて申し訳ありません:私が探しているのは、データを可能な限りそのままに保ちながら、テーブル構造で同期することです。データ複製ではありません。
より詳しい情報:
複製が機能しない理由。
- 設置拠点は州中に広がっています。
- エンド ユーザーが使用している古いバージョンに関係なく、最新バージョンで行われた変更に基づいて、インストーラーが DB で動的な修正を実行するようにします。
- 変更とは、ほとんどの場合、テーブルに新しい列を追加する、新しいインデックスを作成する、またはインデックスを削除する、システムが内部的に使用するテーブルを追加する、またはテーブルを削除するようなものです (ユーザー データ テーブルは削除しません)。
GUI の場合: いいえ、使用できません。DB diff のためだけにインストーラーに 20MB のアプリをバンドルしたくありません。特に、元のインストーラーが 1 MB 未満の場合。