Извините за небольшой крик от неспециалиста, но я снова безобидно нажимаю на «обновить» в интерфейсе, меня выбрасывает с требованием выполнить пересборку через командную строку, это завершается ошибкой, и я вставляю вывод bash в ИИ, чтобы тот сказал, что не так.
«Ошибка указывает на то, что обновление Discourse не удалось, потому что плагин discourse-data-explorer теперь включён в ядро Discourse и не должен быть указан как отдельный плагин в вашем файле конфигурации app.yml».
Я понимаю, что это не всегда возможно, но было бы здорово хотя бы получить предупреждение вроде «готовьтесь, это будет больно». Это могло бы продлить мою жизнь.
Должно было быть выведено предупреждение именно об этом. После этого вы могли бы перезапустить контейнер с помощью команды
./launcher start app
и более спокойно определить свои дальнейшие шаги.
У вас всё ещё может быть возможность запустить контейнер.
Однако, отвечая на вопрос из заголовка: нет, не совсем. Это было значительное изменение, и здесь были уведомления об этом. Периодически требуется обновление компонентов, которые находятся за пределами исходного кода Discourse и не могут быть обновлены через интерфейс пользователя.
Просто я не ожидал, что первая попытка пересборки провалится, и это меня застало врасплох. Сообщение было там, но так как оно находилось в сплошном потоке текста логов, я не был уверен, что смогу найти причину проблемы. Казалось, что это какая-то редкая ошибка, скрытая в стеке вызовов. Как только ИИ указал на неё, я увидел, что она была прямо внизу.
Думаю, так бывает, когда человек является частичным веб-мастером
В чём преимущество предупреждения в другом месте, если оно выполняет точно ту же функцию, что и предупреждение здесь, и ни одно из них не имеет побочных эффектов, кроме прочтения? Логи — это всегда первое место, куда следует обращаться при возникновении ошибки…
Сложность обновления зависит не от самого обновления, а скорее от версии вашего форума перед обновлением, а также от версий Postgres, Redis и всех установленных плагинов.
Поэтому практически невозможно предсказать, будет ли обновление «больным».
Я обновлялся с версии 1.8 до 3.5 без проблем, а обновления с 3.2.1 до 3.2.2 отнимали у меня часы на исправление ошибок.
Думаю, один из способов помочь — если это «ожидаемая» проблема (то есть не что-то, скрытое в стеке вызовов), — окружить её в логах строкой из четырёх дефисов (----). Это облегчит поиск.
Кроме того, моя резервная копия снова сломалась после обновления, так что мне снова за работу
В вашем случае это мало утешает, но это правда. Редко когда обновление требует вмешательства через командную строку.
Надеюсь, вам удалось решить эту проблему! Если вы размещаете сервис самостоятельно, резервные копии необходимы, потому что никогда не знаешь, что может произойти.
В субботу я взялся за это дело и решил проблему, на этот раз с помощью ask.discourse.
Оказалось, что у нас была настроена нестандартная схема томов: загрузки и резервные копии размещались на дополнительном диске. Само по себе это не вызвало бы проблем, но когда мы увеличили объём диска с данными с 20 ГБ до 30 ГБ, мы забыли сообщить об этом файловой системе!
После исправления этой ошибки у меня теперь есть запас места на несколько лет вперёд.