Git и SQL Server MDF файлы - PullRequest
       2

Git и SQL Server MDF файлы

7 голосов
/ 23 января 2012

ОК ... так что я новичок в Git / Github после того, как большую часть своей карьеры был на Visual Source Safe и увидел свет - очень нравится.Поэтому я перенес все свои проекты .NET в свою учетную запись Github и хотел бы также управлять всеми своими базами данных SQL Server с помощью Git.Во всех моих проектах я всегда помещаю файлы базы данных в подкаталог / Database, поэтому в моем исходном дереве, например, /Databases/MyDatabase.mdf и /Databases/MyDatabase.ldf.Я отслеживаю эти файлы с помощью Git, и они хорошо отображаются в Github со всеми остальными источниками.

Вот что я ожидал: я остановил SQL Server с помощью NET STOP MSSQLSERVER и извлек ветку так,Git запустит файлы MDF и LDF для этой ветви.Перезапустите SQL Server с помощью NET START MSSQLSERVER и выполните всю необходимую работу с исходным кодом и базой данных для этой конкретной ветви.Git будет отслеживать мои изменения в файле MDF, и когда я делаю stage / commit / push, он отправляет изменения обратно в удаленный репозиторий.

Я попытался это сделать, свернув базу данных и добавив новый столбец.к столу и делать коммит.Git сказал мне, что не было никаких изменений ни в каких элементах, которые я не ожидал ... Я изменил файл MDF.Разве Git не может отслеживать изменения в файле MDF?Мое первое предположение состояло в том, что, возможно, потому что это был двоичный файл, а не текстовая база, у Git могут быть проблемы с этим, но я считаю, что можно использовать Git для отслеживания файлов изображений и других двоичных элементов, так что не похоже, что это будет проблемой,Есть идеи?Разве это просто невозможно?Должен ли я даже не пытаться сделать это?Заранее спасибо за ваши комментарии.

Ответы [ 2 ]

8 голосов
/ 23 января 2012

Очень плохая идея поместить изменяющий файлы базы данных в любой элемент управления исходным кодом.Попробуйте создать / обновить соответствующие сценарии и сохранить их в системе контроля версий - это правильный способ отслеживать изменения схемы внутри БД

. Если вы используете Visual Studio - это хороший момент, чтобы начать с базы данных исерверные проекты в нем.Но иногда это ведет себя странным образом, поэтому используйте осторожно и осторожно

ИЛИ , вы можете использовать некоторое коммерческое / бесплатное программное обеспечение для отслеживания изменений внутри схемы БД и данных , как RedGate Schema Compare или Redgate Data Compare

1 голос
/ 24 января 2012

Рассматривали ли вы возможность использования нашего средства управления исходным кодом SQL для отслеживания изменений в разработке.Это делает все «сценарии» для вас за кулисами.Он фактически использует движок SQL Compare под капотом.

http://www.red -gate.com / products / sql-development / sql-source-control /

Как Олегправильно указывает на то, что можно отслеживать изменения схемы, используя SQL Compare и SQL Data Compare, но здесь, в Red Gate, мы бы не рекомендовали вам делать это вместо поддержания среды разработки под контролем исходного кода.В идеале вы должны сделать оба.Грант Фричи (Grant Fritchey) написал отличную статью, описывающую, как командную строку SQL Compare можно использовать с системой управления версиями для отслеживания изменений схемы.В своих примерах он использует SourceGear Vault, но принципы применимы к любой системе управления версиями.

http://www.simple -talk.com / sql / database-Administration / auditing-ddl-changes-in-sql-server-базы данных /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...