SQL Server управления версиями?

STL SGI имеет расширение, названное select1st . Слишком плохо это не находится в стандартном STL!

8
задан gkrogers 25 June 2011 в 10:05
поделиться

7 ответов

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

Мы используем Subversion и SQL 2005 вместе в следующем поместье:

  • Мы используем только TortoiseSVN. Никакой интеграции VS / SSMS.
  • У нас есть принцип «автоматизировать все», поэтому мы никогда не полагаемся на инструменты графического интерфейса для выполнения работы.
  • Мы храним все скрипты внутри SVN вместе с кодом. Код, схема и сценарии версируются вместе.
  • Изменения схемы нумеруются в порядке приложения, т.е. 000-create-table-users.sql. Записываем максимальное количество сценариев, развернутых в каждой среде. Каждый сценарий выполняет переход к следующему номеру базы данных r. Когда мы развернем, мы проверяем исходный код и запускаем все сценарии от последнего номера версии до самого высокого.
  • Любые сценарии, не относящиеся к схеме (sprocs / views), являются идемпотентными (могут выполняться любое количество раз с одним и тем же результатом). Они применяются через написанный нами плагин nant. Они меняются каждый раз при развертывании. Не забывайте обновлять ваши представления!
  • Мы в любом случае избегаем скриптов, поскольку мы используем NHibernate, чтобы в любом случае было меньше проблем с версией скриптов.

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

Однако мы НЕ используем его для модульного тестирования - мы полагаемся на создание схемы NHibernate, чтобы сделать это поверх базы данных SQLite.

Единственный негативный момент, с которым мы столкнулись, - это обеспечение соблюдения разработчиками процесс.

5
ответ дан 5 December 2019 в 12:09
поделиться

Visual Studio Team System 2008 Database Edition (кодовое имя "DataDude") - это то, что вам нужно.

Это позволяет вам изменять версии объектов базы данных способами, которые поразят вас. (например, обновите сайт клиента до определенной версии или откатитесь к предыдущей версии без уничтожения каких-либо данных.)

Ознакомьтесь с функциями в блоге Герта Драперса, начиная с этого сообщения .

Или, если вы предпочитаете подкаст, послушайте DotNetRocks с Крисом Селлом в шоу 494 .

Я не знаю, ограничены ли вы TFS для управления версиями при использовании DataDude - но это незаслуженно «недооцененный» член семейства Visual Studio.

4
ответ дан 5 December 2019 в 12:09
поделиться

Git и Mercurial - единственные, которые вы должны учитывать, IMHO, остальные 2 слишком старомодны. Современные SCM должны обрабатывать ветки как git.

Для сравнения git и mercurial см .: http://rg03.wordpress.com/2009/04/07/mercurial-vs-git/ , http://www.russellbeattie.com/blog/distributed-revision-control- systems-git-vs-mercurial-vs-svn .

Тем не менее, у меня нет опыта интеграции SSMS SCM, но AFAIK ни одна из упомянутых систем (кроме TFS) не имеет его. Я бы не назвал это недостатком - например, git GUI - довольно удобный инструмент, который вам покажется более приятным, чем такая интеграция. По крайней мере, это мой случай при переходе от SVN (с интеграцией VS с использованием Ankh) к Git (без интеграции вообще) ...

1
ответ дан 5 December 2019 в 12:09
поделиться

Mercurial интегрирует VS с VisualHG , если вы думаете, что DVCS - лучший вариант. Мы используем его для проектов C ++ / C # в нашем магазине, и он работает достаточно хорошо. (OTOH, я никогда не использовал «полную» интеграцию, поэтому я счастлив работать с расширением проводника и / или командной строкой для подробной работы VC.)

1
ответ дан 5 December 2019 в 12:09
поделиться

Это может быть для вас полезным инструментом: http://www.liquibase.org/

Он разработан таким образом, чтобы упростить контроль версий в любой системе и разумно управлять вашими сценариями обновления.

2
ответ дан 5 December 2019 в 12:09
поделиться

В TFS отсутствуют некоторые функции VSS, в частности расширение ключевых слов. Если вы не встраиваете информацию о ключевых словах ревизии в исходные файлы, это не должно вызывать беспокойства.

0
ответ дан 5 December 2019 в 12:09
поделиться

Потенциально существует целый ряд альтернатив - SQL Server Management Studio (SSMS) поддерживает интеграцию с любым Microsoft Source Code Control Interface MSSCCI Provider. Таким образом, вы можете расширить поиск до систем управления версиями, в которых есть поставщик, совместимый с MSSCCI.

В SSMS выберите Инструменты -> Параметры -> Контроль версий, чтобы узнать, какие плагины поставщика установлены в вашей системе.

Для Например, интеграция Team Foundation Server с SQL Management Studio любезно предоставлена ​​поставщиком TFS MSSCCI. Я думаю, что есть провайдер для CVS / Subversion («Aigenta Unified SCC») и т. Д.

Что касается списка за / против, я думаю, что при наличии совместимого провайдера вы можете открыть вопрос для более широкой аудитории. Мой основной опыт работы с VSS, TFS и Subversion. Это действительно сводится к вашей команде и окружающей среде. Не могли бы вы подробнее рассказать о своей среде?

Например,

  • хотели бы вы установить CI (непрерывную интеграцию)?
  • автоматические сборки / автоматическое управление версиями?
  • поддержку нескольких сред?
  • управление конфигурацией?
  • какой у вас размер команды? вероятно, будет много слияний / ветвлений и т. д.?
  • У вас уже есть система отслеживания ошибок (вы получаете рабочие элементы / отслеживание ошибок как часть развертывания TFS)?
0
ответ дан 5 December 2019 в 12:09
поделиться