Мы используем SQL Server 2000/2005 и Vault или SVN в большинстве наших проектов. Я не нашел достойного решения для записи изменений схемы / процесса базы данных ни в одной из систем контроля версий.
Наше текущее решение довольно обременительно и трудно реализуемо (запишите сценарий изменяемого вами объекта и передайте его в базу данных).
У нас есть много идей о том, как решить эту проблему с помощью некоторой пользовательской разработки, но я бы предпочел установить существующий инструмент (с платными инструментами все хорошо).
Итак: как вы отслеживаете изменения кода вашей базы данных? Есть ли у вас какие-либо рекомендуемые инструменты?
Edit:
Спасибо за все предложения. Из-за нехватки времени я бы предпочел не кататься здесь. И у большинства предложений есть недостаток, заключающийся в том, что они требуют, чтобы разработчик выполнил какую-то процедуру.
Вместо этого, идеальное решение будет отслеживать изменения в базе данных SQL и фиксировать любые обнаруженные изменения в SCM. Например, если в SQL Server есть надстройка, которая может записывать любые изменения DML с пользователем, который внес изменение, а затем зафиксировать сценарий этого объекта в SCM, я был бы рад.
Мы говорили о двух системах:
1. В SQL 2005 используйте права доступа к объектам, чтобы запретить вам изменять объект, пока вы не выполните «проверку». Затем процедура регистрации запишет его в SCM.
2. Запустите запланированное задание, чтобы обнаружить любые изменения и зафиксировать их (анонимно) в SCM.
Было бы хорошо, если бы я мог пропустить часть действий пользователя и заставить систему обрабатывать все это автоматически.