Мне нужно сравнить две базы данных MySql, я хочу сравнить две схемы MySql и найти разницу между обеими схемами.
Я создал две переменные Old_Release_DB и New_Release_DB. В Old_Release_DB я сохранил старую схему релиза, которую после некоторой модификации удалил, добавил, переименовал, изменил свойства столбцов, например, увеличил размер типа данных (например, varchar(10) до varchar(50)). После этого получилась схема нового релиза, которую я сохранил в New_Release_DB.
Теперь я хочу, чтобы имя таблицы, список имен столбцов, которые изменились в New_Release_DB, и изменения вместе с именем столбца.
Пример,
Таблица_А Имя_столбца Добавить (если он добавлен), Table_A Column_Name Delete(если удален), Table_A Column_Name Change (если его свойство изменилось)
Я пробую это в Shell скрипте в Linux, но у меня не получается. Пожалуйста, дайте мне знать, могу ли я использовать другой скрипт, например, python или java.
Чтобы сравнить различия между схемами двух баз данных mysql из командной строки, вы можете использовать Пример использования mysqldiff
из документации
shell> mysqldiff --server1=root@localhost \
employees.salaries:emp1.salaries --differ
# server1 on localhost: ... connected.
# Comparing employees.salaries to emp1.salaries [FAIL]
# Object definitions are not the same:
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`),
KEY `emp_no` (`emp_no`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1
? ^^^^^
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1
? ++ ^^^
Compare failed. One or more differences found.
Если две базы данных не совпадают, утилита должна вернуть ненулевой код выхода, который вы можете включить в сценарий оболочки.
Для меня долгосрочным решением этой проблемы является то, что эта схема БД действительно должна иметь свою независимую систему управления версиями .
Вы, конечно, можете использовать бесплатное программное обеспечение Toad, в котором есть отличные возможности для сравнения баз данных, таблиц и схем.
Проверьте здесь https://www.toadworld.com/products/toad-for-sql-server
Мне это очень пригодилось.