Я планирую отправить новое веб-приложение в службу веб-приложений Azure (бывший веб-сайт Azure). Я хотел бы использовать слоты для развертывания, чтобы иметь возможность протестировать мое развертывание, прежде чем запускать его в производство. Это нормально, пока не требуется изменение схемы БД. Но если происходит изменение схемы, у меня не может быть двух версий программного обеспечения, работающих на одной и той же версии БД. Поскольку я использую EF Migrations, переход на промежуточный слот немедленно приведет к обновлению БД до последней версии.
Итак, мой вопрос, есть ли какое-либо использование слотов развертывания, когда требуется миграция БД?
Как это делается для крупных поставщиков SaaS. Выполняют ли они миграцию БД с новой версией? Это наверняка приведет к простоям.
Я могу только думать о довольно сложных решениях этой проблемы, есть что-нибудь простое?
Ответы:
Возможны выпуски с нулевым временем простоя с использованием слотов службы приложений Azure и единой базы данных, совместно используемой Staging and Production - но вы должны убедиться, что все изменения базы данных обратно совместимы, чтобы текущая и новая версии веб-приложения могли работать одновременно в Постановка и производство игровых автоматов.
Некоторые правила, обеспечивающие это:
Когда вам нужно внести деструктивные изменения, такие как переименование или удаление столбцов, вам нужно сделать 2 релиза:
Хотя это звучит немного сложно, на практике вы, скорее всего, не будете часто вносить деструктивные изменения.
источник
Вы смотрели на отдельные элементы конфигурации слота? В WebApp / «Настройки» / «Настройки приложения» вы можете указать настройки для веб-приложения, а также определить, относится ли оно только к этому слоту.
Таким образом, вы можете иметь строку соединения для вашего промежуточного слота, относящуюся к конкретному слоту, и применить миграцию также и к обмену слотами.
источник