Мы не тратили время на выяснение причин проблемы, так как хотели как можно быстрее запустить @waffleslop. Я обновлял свои серверы Discourse (размещённые на DigitalOcean) без проблем. Однако я использую командную строку, а не графический интерфейс, так как у меня установлена нестандартная конфигурация.
Я могу порекомендовать несколько шагов для минимизации риска длительных простоев:
- Сделайте резервную копию перед любыми действиями! Интересно, не стоит ли добавить в интерфейс предупреждение с настоятельной рекомендацией создать резервную копию перед обновлением. Наличие недавней резервной копии даёт мне уверенность, что в худшем случае мы сможем запустить новый Droplet и восстановить данные.
- Убедитесь, что у вас есть доступ к резервной копии! @waffleslop и я потратили значительную часть времени на то, чтобы понять, как скопировать
/var/discourseна новый Droplet. С исходным Droplet происходило что-то очень странное, и мы не могли простоscpфайлы на новый Droplet. Для своих серверов я храню резервные копии на S3 и ежедневно копирую их на локальную машину. Это чрезмерно? Возможно. Но это даёт мне множество вариантов действий, если что-то пойдёт не так. - Регулярно проверяйте свои резервные копии. Когда ваши производственные серверы недоступны, вы должны быть уверены в своих действиях. В идеале стоит протестировать резервную копию непосредственно перед обновлением, чтобы иметь точку возврата на случай сбоя. Однако обычно достаточно периодически пробовать восстановление, чтобы процесс оставался свежим в памяти.
- Две головы лучше, чем одна. Возможно, это эгоизм, но справиться с чрезвычайной ситуацией гораздо легче, если вы сможете поделиться экраном на звонке с кем-то, у кого есть опыт решения подобных проблем. В идеале вам нужен кто-то, кто умеет работать в командной строке.
Если вы сделаете резервную копию, обновление должно пройти безопасно.