Как вы справляетесь с несколькими разработчиками и изменениями базы данных? - PullRequest
3 голосов
/ 29 марта 2011

Хотелось бы узнать, как вы, ребята, справляетесь с изменениями в базах разработки в группах по 2 и более разработчиков?У вас есть глобальный доступ к базе данных для всех, может быть, локальная копия и применить изменения сценария вручную?Было бы неплохо увидеть плюсы и минусы, которые вы заметили для каждого подхода и количество разработчиков в вашей команде.

Ответы [ 3 ]

3 голосов
/ 29 марта 2011

Начните с " Evolutionary Database Design " Мартина Фаулера.Это хорошо подводит итог

Были и другие вопросы о разработке БД, которые также могут быть полезны, например Является ли RedGate SQL Source Control для меня?

0 голосов
/ 05 апреля 2011

Мы используем то, что носило кодовое имя «Data Dude» - функции базы данных в TFS и Visual Studio - чтобы справиться с этим.Когда вы «получаете последнюю версию» и вводите код, который зависит от изменения схемы, вы также вводите пересмотренные схемы, хранимые процедуры и т. Д. Вы щелкаете правой кнопкой мыши проект базы данных и развертываете;это синхронизирует вашу локальную схему и sp, но не перезаписывает ваши данные.Работа над сценарием, чтобы перенести вас из старой схемы в новую, ложится на Visual Studio, а не на вас или вашего администратора баз данных.У нас также есть «заполненные» сценарии для таких вещей, как списки провинций, и развертывание запускает их для вас.

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

0 голосов
/ 05 апреля 2011

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

Все сценарии являются CREATE сценариями и отражают текущее состояние схемы базы данных. Обновления находятся в отдельных файлах SQL, которые могут обновлять существующие БД с определенной версии до новой (запускаться последовательно). После применения всех обновлений схема должна быть такой же, как и при запуске сценариев установки.

У нас есть несколько инструментов для этого (мы используем SQL Server и .NET):

  • Сценарии выполняются с помощью инструмента, который также применяет стандартное форматирование, чтобы изменения можно было легко отслеживать с помощью инструментов различий текста (и с помощью SCM)
  • Модуль времени выполнения заботится о сравнении существующих объектов БД, запускает обновления при необходимости, автоматически применяет «неразрушающие» изменения, а затем снова проверяет объекты БД, чтобы убедиться в правильности миграции перед фиксацией изменений

Набор инструментов доступен как проект с открытым исходным кодом (лицензируется по лицензии LGPL), он называется bsn ModuleStore (обратите внимание, что он ограничен SQL Server 2005/2008 / Azure и .NET для среды выполнения часть).

...