Написание warmup-скрипта для управления развертыванием в продакшн с миграцией баз данных в веб-приложении Azure со слотами для приложения Django

У меня есть приложение Django, которое я планирую разместить через Azure web-apps. Я видел, что Azure предлагает возможность развертывания через различные слоты развертывания, и хотел бы включить это в процесс развертывания, поскольку это, безусловно, самое стрессовое событие - развертывание в продакшн для моего клиента.

Однако я немного не понимаю, как это сделать, когда я собираюсь выполнить миграцию в производственную базу данных. Насколько я понимаю, вы можете составить "warmup-script" для обработки подобных вещей, но я не уверен, как его написать.

Я хочу, чтобы скрипт запуска выполнял миграции, если они успешны, все хорошо и прекрасно, и слот 2 должен быть заменен на слот production. Однако, если миграции не удались, я хочу откатиться к предыдущим миграциям и не делать подмену кодовой базы со слотом 2 и production, а вместо этого иметь возможность просмотреть журналы и увидеть, что привело к тому, что миграция не удалась.

Благодаря этому процессу, время простоя на стороне клиента будет сведено к минимуму, так как я буду останавливать сервер на "обслуживание" только на короткое время, когда пытаюсь выполнить миграции в производственную базу данных, и если они будут неудачными, я просто отменю их и запущу (удалю сообщение об обслуживании) производственный сервер снова (без выполненных миграций) и смогу отлаживать самостоятельно, не вызывая простоя в производстве.

Я сделал анимированный GIF, чтобы проиллюстрировать, как я представляю себе процесс, я также приложил PDF, если вы хотите пройти через каждый шаг.

GIF https://ibb.co/GsbSxSf

PDF: https://docdro.id/JcJk1Xk

Вернуться на верх