отслеживание изменений, внесенных в структуру базы данных - PullRequest
3 голосов
/ 10 сентября 2009

Как я могу отслеживать все изменения в моей базе данных?

Мне нужен способ точно узнать, какие изменения я внес в базу данных, чтобы я мог внести те же изменения на другом сервере.

Например, если я добавлю новое поле в одну из таблиц, я хотел бы знать, что это за поле, чтобы я мог добавить это же поле в другую базу данных.

Ответы [ 7 ]

9 голосов
/ 10 сентября 2009

Когда люди сталкиваются с этими проблемами, обычно проходят следующие шаги:

  1. Измените db разработки любым способом, необходимым в данный момент.

  2. Готов к развертыванию новой версии приложения - осознайте, что производственную базу данных также необходимо обновить, сохранив данные.

  3. Создайте дамп схемы производства и разработки, вручную измените сценарии создания схемы. Удар головой о стену. Написание сценариев изменений, которые обновляют производственную базу данных.

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

  5. Найдите схему именования для управления версиями этих сценариев изменений, чтобы любая установка могла быть обновлена ​​с данной версии до более новой версии.

  6. поместить сценарии создания и изменения БД в систему контроля версий.

Убедитесь, что вы не повторяете 1-3 каждый раз, но попробуйте выполнить 4-6, чтобы вам не приходилось повторять 1-3 каждый раз.

2 голосов
/ 10 сентября 2009

Взгляните на LiquiBase

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

0 голосов
/ 11 сентября 2009

Я читал в сети о схемах, это полезный способ сравнить базы данных и найти какие-либо изменения?

0 голосов
/ 11 сентября 2009

Есть много инструментов для сравнения данных: - База данных Worbench - EMS sql manager - SQL Maestro - Сравнение базы данных

но этот инструмент также можно использовать для создания скрипта обновления

0 голосов
/ 10 сентября 2009

phpmyadmin имел проект GSoC, включающий репликацию этим летом Томаса Срнки. я думаю, что он уже добился магистрали

0 голосов
/ 10 сентября 2009

Рассматривали ли вы использовать MySQL Replication для этого? Вы действительно не хотите реализовывать это самостоятельно, если только по какой-то причине вам это не нужно.

0 голосов
/ 10 сентября 2009

Неавтоматизированный, но полезный способ отслеживать изменения в БД - это MySQL Query Browser .Он хранит историю всех операций, которые вы выполняете во время его использования.Это делает сборку сценария изменений очень простой.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...