Инструменты управления версиями для сценариев Visual Studio 2010 и SQL Server 2008 и обновлений баз данных?

В настоящее время мы используем Visual Studio 2010 и SQL Server 2008 R2 - разрабатываем интранет-приложения ASP.NET, которые используют (несколько) баз данных SQL Server.

Мы были хранение скриптов (для баз данных) для SQL Server в системе управления версиями отдельно от любых инструментов, таких как SQL Server Management Studio (SSMS) или Visual Studio. То есть у нас есть набор текстовых файлов, содержащих скрипты для таблиц, хранимых процедур и т. Д .; и мы проверяем их на входе и выходе из системы контроля версий непосредственно перед их обновлением (например, в Management Studio) и проверяем их обратно (а затем используем сценарии в SSMS для обновления базы данных).

Теперь мы хотели бы перейти к более комплексный подход.

Я прочитал несколько вопросов / ответов в StackOverflow об управлении версиями, связанными с SQL Server (некоторые из них относятся почти к началу StackOverflow), но не нашел никаких отличных решений. Кроме того, некоторые из записей предшествуют Visual Studio 2010 или SQL Server 2008 или некоторым инструментам, которые сейчас доступны.

Я также читал другие статьи по этой теме, такие как статьи Троя Ханта (один из примеров: http://www.troyhunt.com/2011/02/automated-database-releases-with.html ) и статьи К. Скотта Аллена (например: http://odetocode.com/ blogs / scott / archive / 2008/02/02 / versioning-databases-views-stored-Procedures-and-the-like.aspx ).

В SQL Server Management Studio есть концепция «проекта базы данных» , но это явно устаревшая функция, и не рекомендуется для новой разработки.

В настоящее время мы рассматриваем следующие подходы:

(1) Создайте проект базы данных SQL Server 2008 в Visual Studio 2010 и подключите его к системе управления версиями (TFS или VSS, для пример). [Для этого варианта может потребоваться версия Visual Studio Premium, Ultimate или Team Database Edition.]

Этот подход рассматривает сценарий как «главный», и база данных создается / обновляется на его основе для синхронизации с версией сценария.

Желательными функциями этого подхода являются: глобальный поиск, поиск / замена, рефакторинг, предупреждения об отсутствующих индексах или недействительных элементах и ​​т. Д.

Недостатки: отсутствие графического интерфейса пользователя для таблиц и других элементов, может легко потерять данные с некоторые изменения в столбцах (поскольку сценарий «alter» удаляет столбец и воссоздает его), отсутствует » NET еще)

NeXtep (еще нет поддержки SQL Server)

DBSourceTools (еще недостаточно интегрирован)

14
задан PhilipD 13 April 2011 в 18:08
поделиться