2つのMySQLデータベースを比較する [closed] 質問する

2つのMySQLデータベースを比較する [closed] 質問する

現在、MySQL データベースを使用したアプリケーションを開発しています。

データベース構造はまだ流動的で、開発が進むにつれて変化します (ローカル コピーを変更し、テスト サーバー上のコピーはそのまま残します)。

データベースの 2 つのインスタンスを比較して、変更があったかどうかを確認する方法はありますか?

現時点では、以前のテスト サーバー データベースを破棄するだけで問題ありませんが、テストでテスト データを入力し始めると、少し面倒になる可能性があります。
ただし、実稼働環境では、同じことが再び発生します...

運用データベースに段階的に変更を加える簡単な方法はありますか? できれば、変更するスクリプトを自動的に作成する方法はいかがでしょうか?


回答で言及されたツール:

ベストアンサー1

--skip-comments小さなデータベースで作業している場合、両方のデータベースでオプションを指定して mysqldump を実行し--skip-extended-insert、SQL スクリプトを生成してから、SQL スクリプトで diff を実行するとうまく機能することがわかりました。

コメントをスキップすることで、mysqldump コマンドを実行した時間などの意味のない差異を回避できます。--skip-extended-insertコマンドを使用すると、各行が独自の挿入ステートメントで挿入されるようになります。 これにより、1 つの新規または変更されたレコードが将来のすべての挿入ステートメントで連鎖反応を引き起こす状況がなくなります。 これらのオプションを使用して実行すると、コメントのない大きなダンプが生成されるため、これはおそらく実稼働環境では望ましくないことですが、開発環境では問題ないはずです。 以下に、私が使用するコマンドの例を示します。

mysqldump --skip-comments --skip-extended-insert -u root -p dbName1>file1.sql
mysqldump --skip-comments --skip-extended-insert -u root -p dbName2>file2.sql
diff file1.sql file2.sql

おすすめ記事