Как включить мою базу данных в процесс непрерывной интеграции?

StackOverflow https://stackoverflow.com/questions/1361010

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

  • Базу данных на CI-сервере следует перестроить с нуля с помощью этих скриптов.Затем вы можете проверить, что ваши скрипты находятся в рабочем состоянии.
  • В идеальном мире я должен иметь возможность выполнить обновление базы данных с версии N-1 до версии N и сравнить полученную схему со схемой предыдущей базы данных.Я все еще работаю над этим...
  • Тестовые данные должны быть введены в базу данных, что позволит выполнить модульное тестирование вашего приложения (вы можете использовать BCP для этого).
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top