Добро пожаловать в мир управления жизненным циклом базы данных (DLM).Это довольно большая тема, я сделаю все возможное, чтобы это было как можно короче.
В общем, вы должны вносить изменения в исходный код сначала, а затем развертывать в своих производственных базах данных из источника управления. Это дает вам возможность протестировать ваш код в dev перед его развертыванием. Он также гарантирует, что производственная база данных соответствует тестируемой версии.
Существует ряд инструментов Microsoft, сторонних разработчиков и с открытым исходным кодом, которые помогают вам создавать сценарий вашей базы данных и получать ее в Git (или любую другую систему управления версиями). Некоторые из наиболее популярных - SSDT, Redgate SQL Source Control, Redgate ReadyRoll, Flyway, DBup, Liquibase и DB Maestro, но есть и многие другие.
Упаковка и развертывание этого исходного кода абсолютно автоматизированы. Для автоматизации большинство людей используют инструмент автоматизации (или конвейер инструментов), такой как TeamCity, TFS/VSTS, Jenkins и/или Octopus Deploy для упаковки исходного кода и (необязательно) его развертывания в базу данных (или несколько баз данных). Это может быть сделано либо с фиксацией, либо нажатием одной кнопки. Конечно, точно, как это все работает (и как хорошо все это работает) будет зависеть от используемых вами инструментов.
Учитывая, что существует так много вариантов, невозможно обеспечить прямое пошаговое решение, не зная, какой инструмент управления исходным кодом базы данных и какие средства автоматизации для создания/выпуска вы используете или не рекомендуете. Здесь также очень много задействовано здесь и более, чем может обсуждаться в одном SO-ответе.
Однако, использование источника базы данных и автоматизация процесса выпуска являются фантастически ценными, поэтому я призываю вас продолжать работу. Из вашего вопроса ясно, что вы хотите улучшить свои процессы. :-)
Вы, вероятно, лучше от запуска, глядя на один из следующих (или смотрит какой-либо из других названий, которые я упоминал выше):
Отдельно кажется вам имеют аудиторскую озабоченность. Отслеживание изменений, которые происходят непосредственно на производстве, например, когда люди делают горячие исправления, не проходя контроль источника. Есть еще одна отличная запись в блоге Phil Factor на эту тему, которая подробно описывает how to create your own automated process for tracking drift. Однако, если бы я был вами, я бы посмотрел на Redgate DLM Dashboard. Это сторонний инструмент, но он свободен, поэтому зачем тратить время на повторное изобретательство колеса?
Если вам нужна дополнительная поддержка/обучение моей компании, DLM Consultants, работает weekly online workshops (в партнерстве с Redgate), где вы получите практическую настройку управления исходным кодом, CI и процессов управления выпуском для SQL Server.
Бесплатно? Нет. Однако: http://www.red-gate.com/products/sql-development/sql-source-control/ – SQLMason
Ну, для части сравнения схемы есть «sqlpackage». Red-Gate имеет SQL Data Compare. Однако я не уверен, почему вы проверите скрипты схемы в Git. Не имеет смысла проверить проект и сделать снимок для каждой версии? (Я вижу случай для сценариев данных, но даже тогда это становится сложным.) –
Да, я хотел проверить сам проект, а не сценарии. Просто отредактирован/изменен в вопросе. – Srini