Назад | Перейти на главную страницу

SQL Server и SourceSafe

У меня есть установка двух SQL-серверов (они независимы, только для разработки и тестирования), работающих на компьютерах, и я хотел бы иметь возможность использовать исходный код, чтобы я мог синхронизировать эти два SQL-сервера (они находятся в локальной сети) . У меня есть SQL server 2008, но он работает в режиме совместимости с 2000; и Source Safe 2005.

У меня есть исходный код, установленный на обоих компьютерах, и у меня есть исходная безопасная база данных на одном из компьютеров. На другом компьютере (тот, который не контролирует SS) у меня есть база данных SQL, которую мне нужно поместить в исходный код. Как мне это сделать? Кнопки панели инструментов в SQL Server Management Studio есть, но они неактивны, единственное, что он позволяет мне делать, что связано с безопасным исходным кодом, - это «запускать исходный код безопасно», а внутри sourceafe нет ничего о базах данных SQL.

В SSMS интеграция VSS означает возможность проверки проекта «Скрипты сервера Sql», «Скрипты служб Analysis Services» или «Скрипты SQL Server CE» в VSS. Эти проекты представляют собой не более чем набор текстовых файлов - в отличие, скажем, от проекта приложения C #, который представляет собой набор файлов + сценарий сборки. В проектах SSMS отсутствует «сборочная» часть.

Продукты сторонних производителей, такие как SQL Redgate, приблизят вас к тому, что вы описываете.

Я считаю, что в Visual Studio для разработчиков баз данных есть эта функция. Существуют также другие сторонние продукты, которые могут синхронизировать ваши схемы.

База данных не похожа на «обычный» код, который вы храните в системе управления версиями - для синхронизации баз данных вы не просто заменяете строки кода, вы должны генерировать операторы ALTER (и другие).

Если вы каждый раз создаете базу данных с нуля, вы можете просто использовать операторы create, но для сохранения синхронизации двух действующих баз данных требуется некоторая логика для синхронизации.

Вы также можете написать SMO (API для управления SQL), чтобы записать базу данных в файл, а затем добавить его в систему управления версиями.

Вот пример такого инструмента.

Для таких задач мы используем redgate sql compare.

Также см: https://stackoverflow.com/questions/115369/do-you-source-control-your-databases

Похоже, вы хотите управлять версиями не только схемы, но и данных внутри этой схемы? Почему бы не создать сценарий для своей базы данных для схемы, а затем использовать SSIS для извлечения данных в файлы CSV. Вы можете сжать эти файлы, а затем сохранить их в выбранном вами SCM.

Я бы не рекомендовал Visual Source Safe, так как он может очень легко повредить вашу базу данных контроля версий. Взгляните на Subversion через TortoiseSVN для Win32

Извините, если я неверно истолковал ваши требования. Но я не думаю, что вы найдете инструмент, который версия контролирует всю вашу базу данных - schema & db.

Если у вас просто обычная VS, вы можете использовать проект базы данных. Напишите сценарии для обновления базы данных, а затем просто запустите их на каждом сервере базы данных. Это то, что я использовал для перемещения изменений (синхронизации баз данных) между dev, test и prod, потому что у нас тоже нет версии базы данных.

Затем проект базы данных можно проверить в системе контроля версий.

Полная интеграция SQL Server с системой управления версиями отсутствует. Microsoft пыталась сделать это много лет назад, но никто не использовал, потому что это было не так надежно.

Практически все просто хранят каждый объект в отдельном файле в виде сценария и хранят эти файлы в системе контроля версий. Затем отредактируйте файл и одновременно примените изменения в базе данных. Затем отметьте все файлы, которые вы изменили для выпуска.