Как запустить сине-зеленое развертывание в Azure с включенной EF Core Migrations - PullRequest
2 голосов
/ 29 октября 2019

Я хотел бы запустить сине-зеленые развертывания;однако, EF Migrations, кажется, блокируют это. Если я разверну версию 1 в слоте Blue, создаю EF Migrations и разверну версию 2 в слоте Green, то произойдет одно из двух.

Сценарий 1:

Я запустил миграцию, и версия 1 перестанет работать. Это лишает нас возможности протестировать версию 2 в зеленом слоте, позволяя нашим пользователям запускать версию 1 в синем слоте.

Сценарий 2:

Я надеваюне запускайте миграцию, пока я не переключусь с синего слота на зеленый слот. Это означает, что я не могу протестировать зеленый слот (версия 2) перед тем, как предоставить пользователям доступ к версии 2.

Каков стандартный / лучший метод для этого?

1 Ответ

1 голос
/ 29 октября 2019

Для подобных рабочих процессов необходимо внести изменения в схему в два этапа.

Первый шаг - добавить все, что вам нужно для v2, таким образом, чтобы это было совместимо с v1. Любой новый столбец должен быть необязательным или, если возможно, использовать ограничение или триггер по умолчанию для его заполнения на основе значений v1.

После того, как v1 устареет, вы можете очистить схему, удалив неиспользуемые столбцы и сделав столбцытребуется.

NuGet.org успешно использует этот рабочий процесс в процессе миграции EF в течение многих лет.

...