Обновление проводилось примерно каждые 2–3 дня, и последнее обновление прошло успешно.
Сегодня обновление через URL /admin/upgrade сначала не удалось.
Затем я сделал обычное:
cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
Это также привело к ошибке:
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Задачи: TOP => db:migrate
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)
I, [2023-01-20T15:27:00.834259 #1] INFO -- : == 20230118020114 AddPublicTopicCountToTags: миграция ========================
-- add_column(:tags, :public_topic_count, :integer, {:default=>0, :null=>false})
-> 0.0138s
-- execute("UPDATE tags t\nSET public_topic_count = x.topic_count\nFROM (\n SELECT\n COUNT(topics.id) AS topic_count,\n tags.id AS tag_id\n FROM tags\n INNER JOIN topic_tags ON tags.id = topic_tags.tag_id\n INNER JOIN topics ON topics.id = topic_tags.topic_id AND topics.deleted_at IS NULL AND topics.archetype != 'private_message'\n INNER JOIN categories ON categories.id = topics.category_id AND NOT categories.read_restricted\n GROUP BY tags.id\n) x\nWHERE x.tag_id = t.id\nAND x.topic_count <> t.public_topic_count;\n")
I, [2023-01-20T15:27:00.834823 #1] INFO -- : Завершение асинхронных процессов
I, [2023-01-20T15:27:00.834868 #1] INFO -- : Отправка INT для HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
I, [2023-01-20T15:27:00.835173 #1] INFO -- : Отправка TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2023-01-20 15:27:00.835 UTC [42] LOG: получен запрос на быстрое завершение работы
103:signal-handler (1674228420) Получен SIGTERM, планирование завершения работы...
2023-01-20 15:27:00.849 UTC [42] LOG: прерывание любых активных транзакций
2023-01-20 15:27:00.851 UTC [42] LOG: фоновый рабочий "запуск логической репликации" (PID 51) завершился с кодом выхода 1
2023-01-20 15:27:00.855 UTC [46] LOG: завершение работы
2023-01-20 15:27:00.901 UTC [42] LOG: система баз данных завершена
103:M 20 Jan 2023 15:27:00.905 # Пользователь запросил завершение работы...
103:M 20 Jan 2023 15:27:00.905 * Сохранение финального снимка RDB перед выходом.
103:M 20 Jan 2023 15:27:00.950 * База данных сохранена на диск
103:M 20 Jan 2023 15:27:00.950 # Redis теперь готов к выходу, пока...
ОШИБКА
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' завершилось с ошибкой, код возврата #<Process::Status: pid 390 exit 1>
Место ошибки: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
Выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
Загрузка не удалась с кодом выхода 1
** ЗАГРУЗКА НЕ УДАЛАСЬ ** Пожалуйста, прокрутите вверх и найдите более ранние сообщения об ошибках; их может быть несколько.
./discourse-doctor может помочь в диагностике проблемы.
37cbe5dc5c82e0a41e9e1deea5b99f5e643bfe6bcd53d52c38e3e855a85ed81e
Прокрутив ещё выше, я вижу запись:
PG::UniqueViolation: ОШИБКА: дублирующееся значение ключа нарушает уникальное ограничение "index_tags_on_name"
ДЕТАЛИ: Ключ (name)=(net) уже существует.
Я совершенно не знаю, как исправить/разрешить эту проблему.
Мой форум теперь недоступен. Я снова запустил sudo ./launcher rebuild app. Это тоже не удалось.
Не мог бы кто-нибудь помочь с предложениями по решению проблемы?