sql compareВ очередной раз разбираясь с глюками при апгрейде очередной версии OpenCart 2 и поиске причин возникновения ошибок пришла идея сравнить структуры баз.

Сравнить надо было структуры двух баз - обновленную с раббочими данными и структуру базы установленной "с нуля". Таблиц в базе много и переключать просмотр между страничками с открытыми phpMySQL крайне неэффективно.

Погуглив, нашел пару вариантов вариантов более прогрессивного решения вопроса:

  • прежде всего это платные и шароварные утилиты.
  • простое сравнение стуктур в текстовом режиме программами, умеющими сравнивать файлы и способными показывать отличия.

В первом варианте утилиты, помимо сравнения могут делать массу полезного, например генерировать файл отличий и команд для коррекции структуры, различные diff-ы. Например, www.devart.com или SchemaSync для mysql.
 Второй вариант мне больше подходил, тем более, что обе базы были размещены на локальном сервере.
Я нашел в папке локального сервера утилиту-дампер :
\openserv\OpenServer\modules\database\MySQL-5.5\bin\mysqldump.exe
 и запустил его дважды с разными параметрами для баз lb21 и lb2 :
mysqldump -d -u root -p lb21 > _lb21_stru.sql
mysqldump -d -u root -p lb2 > _lb2_stru.sql
В файлы _lb21_stru.sql и _lb2_stru.sql были выгружены структуры баз.

 

Далее нам нужна программа построчного сравнения и показа различий. Тут тоже есть выбор из автономных уталит - TextDiff, WinMerge. Но поскольку я плотно рабботаю с редактором notepad++, то оказалось для него есть плагин сравнения файлов.
Скачиваем плагин  к Notepad++ с сервера  sourceforge.net
Плагин распаковываем и помещаем  DLL-файл в папку plugins редактора.
Затем открываем оба файла в редакторе. Открытые файлы должны быть последними (самыми правыми) в закладках открытых файлов в редакторе и выбираем пункты меню "Плагины" - Compare - Compare.

Сравнение структур двух баз через плагин к NotePad++ Сравнение текстов структур двух баз с помощью NotePad++

Плагин выполнит сравнение наших файлов дампов структуры и покажет их в удобном для сравнения виде, выделяя различия цветом  и специальными знаками-маркерами слева от каждой строки.

Кстати, плагин весьма хорош и для сравнения других типов файлов, например, можно сравнивать php-файлы от различных версий Опенкарт и его модулей.