Подтвердить что ты не робот

Azure: лучшая практика для тестирования в промежуточной среде с первыми миграциями кода

У меня есть следующая настройка в Windows Azure:

  • Служба "test", подключенная к собственной тестовой базе данных.
  • Служба "производства", связанная с собственной "производственной" базой данных.

Когда сборка была проверена в тесте и готова перейти на производство, мы запускаем "промежуточное" развертывание в производственной хостинговой службе и делаем быстрый smoke test, чтобы убедиться, что новая сборка не полностью нарушена, Экземпляр промежуточного развертывания развертывается с точными битами, которые будут развернуты для производства, поэтому он разговаривает с производственной базой данных. Когда постановка благословляется, мы нажимаем кнопку "VIP Swap", и сборка находится в режиме реального времени. Все хорошо.

Проблема возникает при изменении модели базы данных. У меня Code First Migrations работает отлично. Я могу добавить новые миграции, применить их локально с консолью диспетчера пакетов, а затем сгенерировать сценарии SQL для обновления тестовой базы данных, когда я нажимаю новую сборку для тестирования. Вопрос в том, что наилучшая практика использования First First Migrations вместе с развертыванием в стадии производства/производства? Когда я развертываю новую сборку для промежуточной сборки с изменениями модели, она ожидает найти базу данных, соответствующую своей модели. Но тогда, если я применил изменения модели к производственной базе данных, производственный экземпляр жалуется, потому что его модель не соответствует.

Я только что пропустил этап smoke test. Я загружаюсь на стадию, а затем обновляю базу данных производства и одновременно нажимаю кнопку "VIP Swap". Затем smoke test по производству. Если что-то сильно нарушено, "Swap VIP" вернется и изменит настройки базы данных.

Есть ли лучший способ сделать это, или это в значительной степени это?

Спасибо!

4b9b3361

Ответ 1

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

Ответ 2

Я работаю над Azure, EF и т.д. и другими подобными темами. Я не знаю, какова наилучшая практика для вашего сценария на данный момент. Однако я считаю, что использование инструментов непрерывной интеграции TFS и/или Github имеет смысл для минимизации рисков развертывания. Я надеюсь, что следующая статья предоставит вам точку зрения.

Нажмите здесь

Удачи.