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