Некоторое время назад у меня возникли проблемы (несколько месяцев назад), и в итоге мне пришлось вернуться к версии 2.9.0.beta1, после чего обновиться дальше в тот момент не удалось.
Из-за различных форс-мажорных обстоятельств я был вынужден на время оставить этот проект, но сейчас наконец-то могу к нему вернуться. Я выяснил, что корень проблемы заключался в том, что сервер базы данных PostgreSQL был недостаточно и некорректно обновлён. Эта проблема теперь решена: база данных работает на версии PostgreSQL 14.x, и Discourse также использует эту версию базы данных.
К сожалению, при попытке обновиться снова через стандартный веб-интерфейс администратора система выдала сообщение об ошибке: fatal: HEAD does not point to a branch (полный текст ошибки здесь):
fatal: HEAD does not point to a branch
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:203:in `run'
...
Я подумал, что могу выполнить команду /var/discourse/launcher rebuild app, но и это не помогло: система просто перезапустилась с той же версией. Однако я обратил внимание на следующий вывод:
$ ./launcher rebuild app
x86_64 arch detected.
WARNING: We are about to start downloading the Discourse base image
This process may take anywhere between a few minutes to an hour, depending on your network speed
Please be patient
2.0.20220818-0047: Pulling from discourse/base
1efc276f4ff9: Pull complete
1b880e64942b: Pull complete
794f6dc9a2ff: Pull complete
Digest: sha256:7734701087766821ffb2ddcef423754798bd345c2ac0d550131c6e6905c268e8
Status: Downloaded newer image for discourse/base:2.0.20220818-0047
docker.io/discourse/base:2.0.20220818-0047
...
I, [2022-09-13T02:09:12.828649 #1] INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2022-09-13T02:09:12.829826 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2022-09-13T02:09:13.957219 #1] INFO -- :
I, [2022-09-13T02:09:13.958187 #1] INFO -- : > cd /var/www/discourse && git fetch --depth=1 origin tag v2.9.0.beta2 --no-tags
From https://github.com/discourse/discourse
* [new tag] v2.9.0.beta2 -> v2.9.0.beta2
I, [2022-09-13T02:09:18.214516 #1] INFO -- :
I, [2022-09-13T02:09:18.215535 #1] INFO -- : > cd /var/www/discourse && git checkout v2.9.0.beta2
Note: switching to 'v2.9.0.beta2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 88a85843 FIX: Cooking custom emojis should not use a secure URL (#15929)
I, [2022-09-13T02:09:19.557296 #1] INFO -- :
...
В итоге я откатил эти изменения, восстановившись из резервной копии, и решил сначала обратиться к сообществу за советом: как правильно вернуть Discourse в состояние, когда HEAD указывает на ветку main, и продолжить обновление до последней бета-версии. А после того, как всё будет приведено в актуальное состояние, я планирую в будущем зафиксировать систему на стабильном релизе. В прошлом году я использовал бета-версии для решения возникших проблем, но этого приключения мне уже вполне достаточно. ![]()