この mysqldiff エラーを受け取ったときに取るべき次のステップは何ですか?

この mysqldiff エラーを受け取ったときに取るべき次のステップは何ですか?

私は、運用中で、phpmyadmin と mysqldump/restore を使用して数回保存および復元した MySQL データベースを持っています。この「運用アクティビティ」によって、この DB 構造と、SQL を定義する元のスキーマから作成された新しい「元の」データベースとの間に矛盾が生じているのではないかと思います。

を使用して本番 DB と新しいインスタンスを比較しようとするとmysqldiff、次のようになります。

$ mysqldiff --server1=root@localhost dev_si_brand_new:prod_si
# server1 on localhost: ... connected.
# Comparing `dev_si_brand_new` to `prod_si`                        [FAIL]
# Object definitions differ. (--changes-for=server1)
#

--- `dev_si_brand_new`
+++ `prod_si`
@@ -1 +1 @@
-CREATE DATABASE `dev_si_brand_new` /*!40100 DEFAULT CHARACTER SET latin1 */
+CREATE DATABASE `prod_si` /*!40100 DEFAULT CHARACTER SET latin1 */
Compare failed. One or more differences found.

からmysqldiff ドキュメント

データベース ペアが指定されると、一方のデータベース内のすべてのオブジェクトが、もう一方のデータベース内の対応するオブジェクトと比較されます。どちらのデータベースにも存在しないオブジェクトはエラーになります。

デバッグ情報を取得することは可能ですか?
有用な差分レポートを生成するには何をする必要がありますか?

注: 私は走っています

  • mysql Ver 14.14 Distrib 5.5.43
  • Ubuntu Linux の

答え1

mysqldiffdev_si_brand_newは、DB 名に関して、両方の DB の間に違いがあることを単に伝えていますprod_si

mysqldiff最初に見つかった相違点で停止せずに比較を続行したい場合は、--forceコマンド ラインに引数を追加します。

- 力

最初に見つかった相違点で停止しないでください。すべてのオブジェクトを処理して、すべての相違点を見つけます。

mysqldiff --force --server1=root@localhost dev_si_brand_new:prod_si

関連情報