Обновление провалилось spectacularly

Я заметил, что @anon55243134 удалил почти все свои сообщения. Действительно, здесь есть важные уроки для команды и для поддержания скриптов обновлений и коммуникации вокруг процесса обновления.

@anon55243134 — это человек, который уже несколько лет управляет собственным хостингом Discourse, и теперь у него повреждена и неработоспособна установка — просто потому что он следовал подсказкам для обновления.

Если бы это случилось со мной, я был бы очень разозлен и расстроен из-за возможной потери содержимого форума. Выбрав самостоятельный хостинг, я мог бы не быть готовым или не иметь возможности заплатить большие деньги за исправление, если это вообще возможно.

Я считаю, что предупреждений и проверок недостаточно:

  • проверил ли пользователь наличие свежей резервной копии (не снимка хостинг-сервиса!)
  • загрузил ли пользователь файлы
  • сообщается ли пользователю, что обновление через веб-интерфейс может завершиться неудачей и потребовать обновления через командную строку
  • спрашивается ли у пользователя, не слишком ли старая его операционная система
  • сообщается ли пользователю, что миграция на новый актуальный сервер может оказаться лучшим решением
  • предупреждается ли пользователь, что крупные обновления (например, обновление базы данных) могут быть рискованными, и если пользователь неопытен, лучше подождать неделю, чтобы проблемы были обнаружены и исправлены

Ещё более тревожно то, что в одном из удалённых сообщений я вижу довольно серьёзные сбои, которые не были перехвачены, и скрипт продолжил выполнение:

cat: /shared/postgres_data/PG_VERSION: No such file or directory
...
E: Unable to locate package postgresql--pgvector
cp: cannot stat '/etc/postgresql//main/*': No such file or directory
sh: 1: /usr/lib/postgresql/bin/postgres: not found
...
Finding the real data directory for the source cluster      
could not get data directory using "/usr/lib/postgresql/bin/postgres" -D "/shared/postgres_data" -C data_directory: No such file or directory
Failure, exiting

Я не проверял скрипты, но отсутствие файлов должно служить сигналом надвигающихся проблем, и в такой момент нужно остановиться.