Написание warmup-скрипта для управления развертыванием в продакшн с миграцией баз данных в веб-приложении Azure со слотами для приложения Django
У меня есть приложение Django, которое я планирую разместить через Azure web-apps. Я видел, что Azure предлагает возможность развертывания через различные слоты развертывания, и хотел бы включить это в процесс развертывания, поскольку это, безусловно, самое стрессовое событие - развертывание в продакшн для моего клиента.
Однако я немного не понимаю, как это сделать, когда я собираюсь выполнить миграцию в производственную базу данных. Насколько я понимаю, вы можете составить "warmup-script" для обработки подобных вещей, но я не уверен, как его написать.
Я хочу, чтобы скрипт запуска выполнял миграции, если они успешны, все хорошо и прекрасно, и слот 2 должен быть заменен на слот production. Однако, если миграции не удались, я хочу откатиться к предыдущим миграциям и не делать подмену кодовой базы со слотом 2 и production, а вместо этого иметь возможность просмотреть журналы и увидеть, что привело к тому, что миграция не удалась.
Благодаря этому процессу, время простоя на стороне клиента будет сведено к минимуму, так как я буду останавливать сервер на "обслуживание" только на короткое время, когда пытаюсь выполнить миграции в производственную базу данных, и если они будут неудачными, я просто отменю их и запущу (удалю сообщение об обслуживании) производственный сервер снова (без выполненных миграций) и смогу отлаживать самостоятельно, не вызывая простоя в производстве.
Я сделал анимированный GIF, чтобы проиллюстрировать, как я представляю себе процесс, я также приложил PDF, если вы хотите пройти через каждый шаг.
PDF: https://docdro.id/JcJk1Xk