Как я могу включить свою базу данных в процесс непрерывной интеграции? - PullRequest
2 голосов
/ 01 сентября 2009

Пожалуйста, извините, сегодня мой первый день, когда я пытаюсь настроить среду CI с помощью TeamCity. Я занимаюсь разработкой приложения ASP.NET/Sql Server и пока все хорошо. MSBuild - мой провайдер.

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

Какие у меня есть варианты?

edit: дальнейшие исследования показывают, что продукты RedGate SQL хороши для этого. Они не дешевые, хотя. У них есть хороший технический документ по использованию их продуктов в процессе непрерывной интеграции: http://downloads.red -gate.com / HelpPDF / ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

1 Ответ

4 голосов
/ 01 сентября 2009

Прежде всего, я думаю, что ваша база данных должна быть включена в вашу стратегию управления исходным кодом. Основные принципы для достижения этой цели были прекрасно изложены в K. Скотт Аллен серия . Вы также можете проверить Эволюционный дизайн базы данных Мартина Фаулера . А для получения более практической информации, проверьте ответы на Как вы должны построить свою базу данных из системы контроля версий? .

Как я уже писал в мой ответ , я поддерживаю два набора сценариев: один набор, который может создавать базу данных с нуля, и другой, который может обновить данную базу данных с одной версии до последней. В рамках стратегии CI:

  • База данных на сервере CI должна быть восстановлена ​​с нуля с использованием этих сценариев. Затем вы можете проверить, что ваши скрипты в рабочем состоянии.
  • В идеальном мире я должен иметь возможность выполнить обновление базы данных с версии N-1 до версии N и сравнить полученную схему со схемой предыдущей базы данных. Я все еще работаю над этим ...
  • Тестовые данные должны быть введены в базу данных, чтобы можно было выполнить модульное тестирование вашего приложения (для этого можно использовать bcp ).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...