Отслеживание изменений базы данных MySQL

Какие инструменты вы используете для отслеживания изменений в вашей базе данных MySQL?
В настоящее время я участвую в проекте, в котором мы используем простой текстовый файл (версия, управляемая через SVN), в который мы вручную добавляем операторы SQL при внесении изменений в базу данных.
Многие изменения волшебным образом исчезают каждый раз и тогда, и теперь мы ищем лучший способ изменить отслеживание нашей базы данных.

EDIT:
Я забыл упомянуть одну вещь: мы используем хранимые процедуры и функции, поэтому мы хотим отслеживать изменения в / version не только в структуре базы данных. контроль


person fredrik    schedule 18.04.2009    source источник
comment
Я просто недавно задаю очень похожий вопрос: stackoverflow.com/questions/755704/   -  person markus    schedule 18.04.2009


Ответы (4)


Есть простое решение:

  • Вносите все изменения в схему базы данных и статические данные с помощью скриптов.
  • Контроль версий скриптов
person Community    schedule 18.04.2009
comment
Привет! Спасибо за ответ, но я не понимаю, чем это отличается от того, что мы делаем сейчас? пожалуйста, объясните больше, возможно, я просто упускаю суть. - person fredrik; 18.04.2009
comment
Действительно ли простой текстовый файл работает с базой данных (.e. Используется как скрипт)? Судя по вашему вопросу, у меня сложилось впечатление, что это всего лишь запись изменений. - person ; 18.04.2009
comment
Когда я вношу изменения в БД, я добавляю оператор alter table sql (или create prcedure или что-то еще) в этот текстовый файл, а затем мои коллеги будут запускать эти операторы в своих локальных базах данных, но иногда это забывается ... а иногда его забывают добавить в файл с контролем версий. Но я начинаю понимать, что вы имеете в виду, я думаю, добавляя изменения в файл сценария и запускаю его в моей собственной локальной базе данных? - person fredrik; 18.04.2009
comment
Да, запустите фактический файл с базой данных - не пытайтесь скопировать и вставить содержимое в клиентское приложение mysql. Чтобы сделать это правильно, только один человек должен иметь право изменять схему производственной базы данных - это человек, которого вы затем обвиняете, когда что-то пойдет не так :-) - person ; 18.04.2009
comment
В конце концов, я нашел решение, основанное на вашей идее. Я создал структуру папок, представляющую базу данных, например Database / DatabaseName / ProcedureName.sql и Database / DatabaseName / Tables / TabelName.sql, затем я создал PHP-скрипт, который будет запускать все скрипты .sql в нужном месте в папке. база данных .. пока вроде будет работать :) Спасибо. - person fredrik; 19.04.2009

У Toad for MySQL есть отличный инструмент для сравнения схем

http://www.quest.com/toad-for-mysql/

person Petah    schedule 08.02.2011

Думаю, вам понадобится что-то вроде этого (я тестирую его для Firebird, и он очень хорошо работает): http://www.upscene.com/products.audit.index.php Я думал, что есть версия MySQL, но НЕТ :(

для MySQL я вижу только это: http://solutions.mysql.com/solutions/partner.php?partner=1532

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

person Hugues Van Landeghem    schedule 18.04.2009

mysql-diff сравнивает таблицы, но еще не хранимые процедуры.

person stepancheg    schedule 04.11.2009