Я использую Firebird базу данных для большинства разработок и использую FlameRobin инструмент администрирования для нее У него есть хорошая возможность записывать все изменения. Он может записывать все в один большой файл или один файл на изменение базы данных. Я использую этот второй вариант, а затем сохраняю каждый скрипт в программном обеспечении для контроля версий - раньше я использовал Subversion, теперь я использую Git.
Полагаю, вы можете найти какой-нибудь инструмент MySQL, который имеет ту же функцию ведения журнала, что и FlameRobin для Firebird.
В одной из таблиц базы данных я храню номер версии структуры базы данных, поэтому я могу легко обновить любую базу данных. Я также написал простой PHP-скрипт, который выполняет эти SQL-скрипты один за другим в любой целевой базе данных (путь к базе данных и имя пользователя / пароль указываются в командной строке).
Существует также возможность регистрировать все операторы DML (вставка, обновление, удаление), и я активирую это, изменяя некоторые данные по умолчанию, содержащиеся в каждой базе данных.
Я написал хорошую белую книгу о том, как я делаю все это подробно. Вы можете скачать документ в формате .pdf вместе с демонстрационными сценариями PHP с здесь .