Я понимаю, что у каждого слота своя конфигурация, но как насчет миграции БД? Как они применяются? Допустим, я развертываю промежуточную версию с миграциями, поэтому промежуточная база данных обновляется. Как обновляется производственная БД? И как мне получить доступ к переменным в моем коде?
Как поменять местами базу данных в слотах развертывания веб-приложения Azure?
Ответы (2)
Когда вы обновляете промежуточный слот, любая БД, подключенная к этому слоту, будет обновлена.
Позвольте мне описать два сценария -
Производственный слот и промежуточный слот используют одну и ту же БД: в этом случае, если вы обновите код и выполните обновление до промежуточного слота, производственная БД получит все миграции БД, поскольку она также привязана к промежуточному слоту. Возможно, это не идеальный подход.
В производственном слоте и промежуточном слоте используется отдельная БД: здесь, если вы запустите обновление в промежуточном слоте, миграция БД будет выполняться в БД, подключенной к этому слоту, а производственная БД останется неизменной.
Теперь 1-й сценарий не будет хорошей идеей, поскольку вы вносите изменения непосредственно в свою производственную базу данных. Но вы получаете полностью обновленную базу данных. Во втором сценарии это безопасно, но ваши последние данные могут не совпадать.
Лучшей идеей было бы следовать 2-му сценарию для тестирования. А когда испытание завершится -
- Создайте скрипт для миграции БД,
- Резервное копирование производственной базы данных
- Запустите миграцию БД вручную
- Поменяйте местами производственный слот с промежуточным слотом
проблема в том, что авторазвертывание занимает около 3 минут, но миграция базы данных выполняется примерно за 30 секунд.