У меня есть следующая настройка в Windows Azure:
Когда сборка проверена в ходе тестирования и готова к работе, мы запускаем «промежуточное» развертывание в размещенной в производственной среде службе и выполняем быстрый дымовой тест, чтобы убедиться, что новая сборка не полностью сломана. Промежуточный экземпляр развертывается с теми же битами, которые будут развернуты в рабочей среде, поэтому он общается с рабочей базой данных. Когда постановка благословлена, мы нажимаем кнопку «VIP Swap», и сборка запущена в производство. Все хорошо.
Проблема возникает при изменении модели базы данных. У меня Code First Migrations работает отлично. Я могу добавлять новые миграции, применять их локально с помощью консоли диспетчера пакетов, а затем генерировать SQL-скрипты для обновления тестовой базы данных при отправке новой сборки для тестирования. Вопрос в том, как лучше всего использовать Code First Migrations вместе с промежуточными/производственными развертываниями? Когда я развертываю новую сборку на промежуточной стадии с изменениями модели, она ожидает найти базу данных, соответствующую ее модели. Но затем, если я применяю изменения модели к рабочей базе данных, производственный экземпляр жалуется, потому что его модель не соответствует.
Я просто пропускал постановочный дымовой тест. Я загружаю в staging, затем обновляю производственную базу данных и почти одновременно нажимаю кнопку «VIP Swap». Потом дымовой тест на производстве.Если что-то серьезно сломано, «Поменяйте VIP» обратно и отмените изменения базы данных.
Есть ли лучший способ сделать это, или это в значительной степени все?
Спасибо!