Я являюсь частью команды разработчиков, которая в настоящее время работает с базой данных, которая не имеет какого-либо контроля источника. Мы работаем с SQL Server 2008 R2 и всегда управляем БД непосредственно с помощью SSMS. Теперь он имеет ~ 340 таблиц и ~ 1600 хранимых процедур, а также несколько триггеров и просмотров, поэтому это не маленькая БД.
Моя цель состоит в том, чтобы иметь БД под контролем версий, поэтому я читал статьи, такие как серии Скотта Аллена и многие старые вопросы, связанные с СО. Но я все еще не могу решить, как действовать.
То, что я думаю, это script схема базы данных в одном файле, затем процедуры, триггеры и представления в каждом файле. Затем сохраните все версии под Mercurial. Но, конечно, каждый член команды может получить доступ к SSMS и напрямую изменить схему и процедуры с возможностью того, что любой из нас может забыть реплицировать эти изменения в версированных файлах.
Какие лучшие варианты существуют? И я забыл какой-то элемент, заслуживающий контроля над версиями? Моя самая большая проблема заключается в том, что большая часть литературы, которую я нашел, объясняет, как выполнять контроль версий при создании новой базы данных, но не тогда, когда она уже старая и относительно большая.