Обновление PostgreSQL 18 для self-hosters

Я запускаю Discourse в отдельном Docker-контейнере на /var/discourse.

Я попытался обновить встроенную базу данных PostgreSQL с версии 15 до версии 18. Обновление, казалось, завершилось, и активный каталог данных теперь сообщает:

/shared/postgres_data/PG_VERSION
18

Однако пересозданный контейнер Discourse по-прежнему содержит только бинарные файлы PostgreSQL 15:

/usr/lib/postgresql/15/bin/postgres
postgres (PostgreSQL) 15.18

Служба PostgreSQL настроена на запуск:

/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main

тогда как фактический каталог данных Discourse смонтирован в:

/shared/postgres_data

В результате PostgreSQL завершается с ошибкой:

FATAL: database files are incompatible with server

DETAIL: The data directory was initialized by PostgreSQL version 18,
which is not compatible with this version 15.18
(Debian 15.18-1.pgdg12+1).

Я понимаю, что в последних Docker-образах Discourse должны содержаться бинарные файлы PostgreSQL 18. Я изменил app.yml, чтобы использовать шаблон PostgreSQL 18, и пересоздал приложение, но в результирующем контейнере по-прежнему находятся бинарные файлы PostgreSQL 15, а скрипт службы по-прежнему указывает на /etc/postgresql/15/main.

Соответствующая часть моей текущей конфигурации службы:

HOME=/var/lib/postgresql USER=postgres exec thpoff \
chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert \
/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main

Мои вопросы:

  1. Каков правильный способ пересоздания или обновления контейнера Discourse, чтобы в нем действительно содержались бинарные файлы PostgreSQL 18?

  2. Есть ли какой-то конкретный шаблон или тег образа, который следует использовать в app.yml?

  3. Как только PostgreSQL 18 станет доступен, какова поддерживаемая процедура его запуска с использованием существующего каталога /shared/postgres_data?

Я не удалял и не переинициализировал каталог данных PostgreSQL 18. Я предпочел бы восстановить обновленный кластер, а не восстанавливать старые данные PostgreSQL 15.

1 лайк