Как вы поддерживаете несколько версий баз данных? - PullRequest
7 голосов
/ 02 декабря 2010

У нас много сред

trunk (интеграция с dev) -> devel (групповое тестирование) -> qa (регрессионное тестирование) -> live (использование пользователем)

Каждый имеет свою собственную базу данных, которая работает с кодом в этой среде.

Часть содержимого базы данных - это метаданные, а часть - данные. Например, если вы создаете отчет, то столбцы, из которых вы можете создать отчет, представляют собой метаданные, но отчеты, которые уже были созданы пользователем, являются данными. Метаданные перемещаются по цепочке продвижения (внедряются в транк и отправляются в devel-> qa-> live) вместе с кодом по мере его тестирования. Данные, однако, не продвигаются. Более того, данные в определенной среде не должны быть стерты или повреждены и продолжать работать после того, как эта среда была повышена.

Какие существуют хорошие стратегии для управления и, что не менее важно, автоматизации такой установки?

Мы используем .NET / C # / SQL Server, но я думаю, что эта проблема является общей и должна быть решена повсеместно для любого зрелого приложения, над которым работает большое количество разработчиков и которое заботится о пользователях данных генерировать на нем.

Ответы [ 2 ]

4 голосов
/ 02 декабря 2010

Если вы спрашиваете, что я думаю, инструменты управления версиями баз данных в выпусках Team Suite Visual Studio полностью соответствуют этой задаче. Они включают в себя инструменты для сравнения схем (от БД к БД, от проекта к БД и т. Д.), Генерации данных, заполнения и даже модульного тестирования хранимых процедур.

3 голосов
/ 02 декабря 2010

Другой продукт, на который вы, возможно, захотите взглянуть, - Контроль исходных кодов SQL от Red Gate . Мы все еще находимся в процессе его оценки, но он, безусловно, пытается удовлетворить хотя бы некоторые ваши требования. Остальные продукты Red Gate также могут пригодиться вам.

...