Обновление схемы базы данных
Поэтому я хотел бы обновить мою версию dev своей базы данных из моей действующей базы данных, я экспортировал схему действующей базы данных, и когда я пытаюсь импортировать ее в базу данных dev, она выдает ошибки, говорящие о том, что таблицы уже существуют. В таблицах есть данные, которые я не хочу потерять, а создание полного дампа данных займет слишком много времени и не является необходимым. Мне просто нужны новые столбцы, которые находятся в действующей базе данных, чтобы войти в мою базу данных dev. Есть ли способ массового импорта всех новых столбцов в таблицы базы данных dev?
1 ответ
Я бы порекомендовал взглянуть на утилитуmysqldiff . Это инструмент, который «сравнивает структуры данных (т. е. определения схем/таблиц) двух баз данных MySQL и возвращает различия в виде последовательности команд MySQL» .
Исходный код (perl) этого инструмента размещен на Github . Для этого инструмента уже есть пакеты Ubuntu и Debian .
В справочной странице есть хорошие примеры :
# compare table definitions in two files
mysqldiff db1.mysql db2.mysql
# compare table definitions in a file 'db1.mysql' with a database 'db2'
mysqldiff db1.mysql db2
Обратите внимание, что этот инструмент работает только со структурой данных, а не с самими данными .
Аналогичные утилиты существуют и для других баз данных SQL (например, pgdiff для Postgresql).