Обновление с PostgreSQL 13 до 15 завершается ошибкой — форум сейчас недоступен

Всем привет,

При попытке выполнить пересборку для обновления до последней версии, прошедшей тесты, я получаю следующую ошибку. Это включает обновление версии PostgreSQL с 13 до 15.

[2025-03-12T20:49:22.045226 #1]  INFO -- : Замена (?-mix:^#local +replication +postgres +peer$) на local replication postgres peer в файле /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045431 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*127.*$) на host all all 0.0.0.0/0 md5 в файле /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045624 #1]  INFO -- : Замена (?-mix:^host.*all.*all.*::1\/128.*$) на host all all ::/0 md5 в файле /etc/postgresql/15/main/pg_hba.conf
I, [2025-03-12T20:49:22.045816 #1]  INFO -- : > if [ -f /root/install_postgres ]; then
  /root/install_postgres && rm -f /root/install_postgres
elif [ -e /shared/postgres_run/.s.PGSQL.5432 ]; then
  socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres уже запущен, остановите контейнер ; exit 1
fi

initdb: предупреждение: включена аутентификация «trust» для локальных подключений
initdb: подсказка: вы можете изменить это, отредактировав pg_hba.conf или используя опцию -A, или --auth-local и --auth-host при следующем запуске initdb.
W: https://dl.yarnpkg.com/debian/dists/stable/InRelease: ключ хранится в устаревшем наборе ключей trusted.gpg (/etc/apt/trusted.gpg), см. раздел DEPRECATION в apt-key(8) для деталей.
debconf: отложено конфигурирование пакетов, так как apt-utils не установлен
cp: не удаётся получить информацию о '/etc/postgresql/13/main/*': файл или каталог не найден

Скрипт просто застревает на этой команде копирования.

Когда я пытаюсь перезапустить форум, команда перезапуска завершается успешно, но форум показывает «отказ в подключении».

Как мне либо откатиться к использованию моей резервной копии в PostgreSQL 13, либо продолжить? Спасибо.

Пока не появятся более умные люди, которые помогут, перейдите по этой теме об обновлении PostgreSQL:

Вы можете просто создать новый сервер и импортировать резервную копию.

Я хочу избежать этого, если это возможно

Это самое простое решение.

Перезапустите старый контейнер. Ваш форум вернётся. А новый сервер вы сможете настроить в удобное для себя время.

Перезапуск контейнера не удалось выполнить, так как он находился в промежуточном состоянии между версиями базы данных. Я удалил папку postgres_data и теперь восстанавливаю данные из резервной копии.

Какие характеристики у вашего сервера? Если вы используете Ubuntu LTS, укажите версию вашего сервера.

Вам удалось восстановить сайт?

Если вы действительно работаете под управлением более старой ОС и версии Docker, рекомендуется обновить обе системы перед повторной попыткой пересборки.

Возможно, вы обновляли большую базу данных? Если да, то возможно, что обновление всё ещё выполнялось. Во время пересборки вы можете периодически сравнивать размеры директорий postgres_data и postgres_data_new. Если размер postgres_data_new продолжает расти, значит обновление ещё идёт. (Вы также можете проверить, выполняется ли команда pg_upgrade, посмотрев список процессов.)


На эту ошибку cp пока можно не обращать внимания. Мне удалось обновить тестовый сайт со стандартной установкой, несмотря на ту же ошибку. (Она была вызвана изменением в upstream-репозитории, поэтому мы исправим образ, чтобы убрать эту ошибку, но она не должна нарушить процесс обновления базы данных, если конфигурации postgres не были существенно изменены заранее.)

Привет!

Да, мне удалось восстановить сайт. Мы действительно обновляли большую базу данных, но я следил за указанными выше директориями, чтобы убедиться, что папка postgres_data_new увеличивается в размере. Через некоторое время она перестала расти, и скрипт просто застрял на этой команде.

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