Подтвердить что ты не робот

Любой, кто использует "проекты баз данных" в Visual Studio?

Недавно я попробовал (версия SQL 2008), и я нашел их вполне в порядке. Единственная проблема заключается в том, что мастер недостаточно интеллектуальный, чтобы обновлять структуру базы данных без предварительного удаления всех данных. Именно поэтому эти проекты не используются на практике?

На самом деле никогда не видел, чтобы кто-нибудь их использовал или вообще упоминал о них. Также ничего не видно в блогах и форумах, если вы явно не ищете его.

Что с ними не так?

4b9b3361

Ответ 1

Я использую проект базы данных, который является частью Visual Studio Database Edition. Это отличный инструмент. В основном вы определяете всю схему, создавая скрипты, которые затем проверяются в исходное управление. Затем он имеет встроенные инструменты для генерации разностных скриптов, которые, кстати, не удаляют данные.

Он также имеет инструменты сравнения данных, поэтому вы можете сравнивать данные между базой данных и генерировать script, чтобы сделать базы данных одинаковыми.

В недавнем выпуске GDR есть некоторые интересные функции, добавленные к нему. Так что, если вы используете встроенный метод развертывания, вы можете создать пакет развертывания, который при запуске будет анализировать целевую базу данных и применять только различия.

Если у вас есть Team Studio - Team Suite или версия для разработки, вы можете использовать Database Edition.

Дайте ему попробовать и это отличная эволюция в развитии базы данных.

Ответ 2

Как и Glennular, мы используем их для контроля версий нашей схемы и s'procs.

Несмотря на то, что у нас есть довольно продвинутая структура управления версиями (CI, автоматическое развертывание для dev, развертывание с одним кликом для стадии и prod); мы не включаем ни один из проектов БД в эту структуру. Мы просто пока не верим.

ОБНОВЛЕНИЕ: (для Out In Space)

У нас есть отдельные проекты TFS для функциональных областей компании (Sales, Marketing и т.д.). В рамках каждого проекта TFS у нас есть папка Main и Production. У нас также есть один проект TFS, который содержит проекты базы данных, и другой, который содержит проекты Common assembly/projects studio.

После выпуска мы переходим от Main to Production. У нас нет промежуточной ветки, поскольку мы слишком быстро двигаемся, чтобы справиться с этим. Правильно или неправильно, наша производительность измеряется частично количеством выпусков производственного уровня, которые мы делаем в неделю; исправления ошибок, новые функции и т.д.

CI настраивается на главном ветки, так что каждая проверка вызывает развертывание сервера сборки в наших средах DEV. Затем запускаются тесты на устройства и веб-сайты, а качество сборки автоматически устанавливается на "Разработка", если оно завершается успешно. Когда кто-то изменяет качество сборки на "В стадии постановки", это приводит к тому, что любые предыдущие сборки "В стадии постановки" должны быть установлены на "Отклонено" и заставляют эту сборку перенаправляться на наши промежуточные серверы при обновлении файлов конфигурации, чтобы указать на правильные серверы. (Для этого я использовал сценарии TFS Deployer и PowerShell).

QA проводит тестирование на наших промежуточных серверах. После того, как они счастливы, производственная группа меняет качество сборки на "Производство". Это приводит к отправке сборки в область производства, которая затем вручную копируется в нужное место. После завершения, производство уведомляет разработчиков, которые затем передают эту версию в папку "Производство". QA также уведомляется о том, кто затем проводит тесты на производство, чтобы убедиться, что все действительно работает так, как ожидалось.

У нас есть отчеты, созданные для того, чтобы показать нам, какие изменения существуют между производственными выпусками, чтобы мы знали каждую проверку в том, что она развертывается. Это предотвращает появление неизвестных сообщений, таких как изменение базы данных и т.д., Или какой-либо другой потенциально нарушающий код.

Кроме того, наш BA отслеживает рабочие элементы через Team System Web Access и знает, когда эти элементы находятся в производстве.

Хотя наш DBA использует Database Edition (GDR), они не впечатлены уровнем контроля для автоматического развертывания. Я надеюсь, что Rosario привнесет в линейку продуктов лучший контроль над развертыванием; но до тех пор мы имеем TFS Deployer и powershell.

Ответ 3

Мы используем их. Мы сохраняем все наши схемы создания/обновления скриптов и хранимых процедур. Основная цель заключается в том, что мы можем подключить проект к SourceSafe или SVN.

Это простой способ контролировать версию скриптов SQL.

Это немного странно, пытаясь выполнить некоторое тестирование SQL в VS, но вы найдете способы обойти его.

Update

Мы действительно встроили его в наши сценарии развертывания, наш инструмент развертывания, проходит через проект БД (кроме флаговых папок) и запускает все script. Мы просто создали быстрый инструмент для запуска проекта. Если у кого-то есть другие решения для развертывания проекта БД, который был бы полезен.

Ответ 4

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

Ответ 5

Я использовал их в нескольких платных проектах, и я думаю, что это отличный инструмент. Thats сказал, я видел некоторые проблемы.

  • Если файл .dat в папке проекта db не синхронизируется с временным экземпляром базы данных, сравнение схемы даст неточные результаты. Не уверен, как это происходит, схема обзора тщательно сравнивает и удаляет ваш .dat файл (после закрытия решения), если что-то кажется неправильным.

  • Если у вас есть 20 баз данных, они ссылаются друг на друга и используют круговые ссылки... Это будет больно. Я не понял, как сделать его масштабным для этого сценария. GDR 2, похоже, предлагает некоторые обещания.