Какой следующий шаг следует предпринять при получении этой ошибки mysqldiff?

Какой следующий шаг следует предпринять при получении этой ошибки mysqldiff?

У меня есть база данных MySQL, которая была в производстве и сохранялась и восстанавливалась несколько раз с помощью phpmyadmin и mysqldump/restore. Я подозреваю, что "производственная деятельность" внесла некоторые расхождения между этой структурой БД и любой новой "чистой" базой данных, которая была создана из исходной схемы, определяющей SQL.

когда я пытаюсь сравнить производственную базу данных с совершенно новым экземпляром, используя 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-линукс

решение1

mysqldiffпросто говорит вам, что между обеими БД есть разница, касающаяся имени БД: dev_si_brand_newпротив prod_si.

Если вы не хотите mysqldiffостанавливаться на первом обнаруженном различии и продолжать сравнение, просто добавьте аргумент --forceв командную строку:

--сила

Не останавливайтесь на первом найденном различии. Обработайте все объекты, чтобы найти все различия.

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

Связанный контент