Здравствуйте,
Я запустил обновление после, наверное, года, что привело к переходу с pg 13 на 15.
Я пытаюсь запустить команду с моим собственным LC_LANG, но это не работает: `FATAL: data directory “/shared/postgres_data” does not exist`. И действительно, его нет… У кого-нибудь есть идеи?
У меня возникла точно такая же ошибка, что и у вас: «/bin/bash: warning: setlocale: LC_ALL: cannot change locale», когда я пытался выполнить команду launch rebuild app. Это привело меня в итоге к этому посту. Удалось ли вам в итоге решить проблему? Команды docker run, как указано выше, лишь приводят к ещё большим проблемам.
Я добавил маппинг -v /var/discourse/shared/standalone:/shared, и теперь я продвинулся немного дальше. Странно, что его там нет. Проблема может быть в том, что мое «приложение» всё ещё застряло на какой-то версии 2024 года, и «пересборка» не работает. Просто предположение…
Так, у меня было это в app.yml, и всё работало нормально:
Я имел в виду LANG, а не LC_LANG. Проблема в том, что если я сейчас откатюсь к чему-то другому, то будет «слишком поздно». Я пробовал en_US.UTF_8, но ничего не вышло — пересборка всегда завершается ошибкой.
Если у вас нет актуальной резервной копии и вы не можете перезапустить старый контейнер, то я бы переключился на шаблон PG13, настроил работающую среду, создал резервную копию, развернул новый сервер и восстановил эту копию там. Вы можете настроить его на любом языке, который вам нравится, пока база данных пуста, а затем выполнить восстановление (возможно, язык волшебным образом преобразуется?).
Перенос на новый сервер гарантирует, что вы не «уроните» свой текущий сервер.
К сожалению, я уже нахожусь в аварийном состоянии. У меня есть резервные копии, но я не могу их восстановить, так как разница в версиях слишком велика, и возникают проблемы с зависимостями gem. Я также не могу вернуться к старой версии, поскольку лаунчер автоматически обновляется, что, на мой взгляд, немного обидно.
При установке LC_ALL я получаю:
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups.rb
/usr/local/bin/pups --stdin
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (fr_BE.UTF-8)
I, [2025-12-02T15:46:29.638999 #1] INFO – : Reading from stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `split': invalid byte sequence in US-ASCII (ArgumentError)
split = conf.split("_FILE_SEPERATOR_")
^^^^^^^^^^^^^^^^^^
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/cli.rb:59:in `run'
from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/bin/pups:9:in `<top (required)>'
from /usr/local/bin/pups:25:in `load'
from /usr/local/bin/pups:25:in `<main>'
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
19a63b958021df0ecbc7e21bfea95f1c5ef7b039efd669b5d4af48b05d397a58
Если я удалю LC_ALL, то команда “./launcher rebuild app” останавливается на:
Performing Consistency Checks
Checking cluster versions ok
Checking database user is the install user ok
Checking database connection settings ok
Checking for prepared transactions ok
Checking for system-defined composite types in user tables ok
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Checking for user-defined encoding conversions ok
Checking for user-defined postfix operators ok
Checking for incompatible polymorphic functions ok
Checking for not-null constraint inconsistencies ok
Creating dump of global objects ok
Creating dump of database schemas ok
lc_collate values for database "template1" do not match: old "fr_BE.UTF-8", new "en_US.UTF-8"
При использовании “ручной” команды docker, упомянутой в первом посте, мне также пришлось создать ссылки в /etc/postgresql на /var/…, так как некоторые файлы отсутствовали, и в итоге я получил ту же ошибку, что и выше.
Я попробую выполнить новую установку и восстановить данные там.
Сомневаюсь, что изменение версии действительно слишком велико. Вы пробовали настроить новый сервер и восстановить на нём резервную копию? Я восстанавливал копии, которые были старше сайта, на который их восстанавливал, на несколько лет. Я почти уверен, что это сработает. Я переносил сайты на новые серверы несколько раз в месяц. Проблемы возникали только тогда, когда индекс был повреждён, но я не сталкивался с этим уже довольно давно.
Вы пробовали переименовать postgres_old в postgres_data и затем выполнить:
./launcher start app
О, это отличная идея! Вот почему мне стоит читать весь пост перед ответом.
Я могу подтвердить, что новая установка также ломается при заданном LC_ALL, точно так же, как показано выше (_FILE_SEPERATOR_ …). Однако без LC_ALL всё работает нормально.
Я смог восстановить своё сохранение с помощью чистой новой установки на последнем мастер-ветке, спасибо. Исправление этих проблем останется загадкой…