Обновление схемы базы данных

Поэтому я хотел бы обновить мою версию 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).

Другие вопросы по тегам