У меня есть внешняя база данных версии 16.3, и в контейнере web_only установлен psql (PostgreSQL) 15.12. При создании резервной копии возникает ошибка. Как решить проблему с несовпадением версий?
Спасибо.
Можете прислать ошибку сюда, оформив её в тройных обратных кавычках (```)?
Спасибо!
[2025-05-08 03:32:20] 'system' запустил резервное копирование!
[2025-05-08 03:32:20] Пометка резервной копии как запущенной...
[2025-05-08 03:32:20] Проверка существования '/var/www/discourse/tmp/backups/default/2025-05-08-033220'...
[2025-05-08 03:32:20] Проверка существования '/var/www/discourse/public/backups/default'...
[2025-05-08 03:32:20] Обновление метаданных...
[2025-05-08 03:32:20] Создание дамп публичной схемы базы данных...
[2025-05-08 03:32:20] pg_dump: ошибка: прерывание из-за несоответствия версии сервера
[2025-05-08 03:32:20] pg_dump: подробности: версия сервера: 16.3; версия pg_dump: 15.12 (Debian 15.12-1.pgdg120+1)
[2025-05-08 03:32:20] ИСКЛЮЧЕНИЕ: pg_dump не удался
[2025-05-08 03:32:20] /var/www/discourse/lib/backup_restore/backuper.rb:173:in dump_public_schema```
Возможно, дело в том, что, насколько я помню, Discourse поддерживает PostgreSQL до версии 15?
А также, возможно, в том, что версии баз данных не совпадают (одна — 16, другая — 15)?
Я почти уверен, что проблема в том, что у вас установлена версия 16, а в Discourse используются инструменты PG15. Вам нужно зайти в контейнер и переключиться на инструменты PG16.
Более долгосрочное решение — добавить код в ваш app.yml, который будет обновлять инструменты PG при сборке нового контейнера.
Я делал это для одного человека некоторое время назад, но теперь я не работаю с ним и не могу найти свой код.
Вам нужно найти в Google «как обновиться до PG16» и выполнить это внутри контейнера. Затем добавьте соответствующие команды в app.yml, чтобы они выполнялись при пересборке.