Мы используем Discourse с внешней базой данных вместо встроенного Postgres на базе Docker. Недавно нам пришлось обновить наш кластер Postgres до версии 14, из-за чего резервное копирование Discourse продолжает завершаться ошибкой.
Вывод лога
[2022-01-17 03:38:08] Создание дампа публичной схемы базы данных...
[2022-01-17 03:38:08] pg_dump: ошибка: версия сервера: 14.1 (Ubuntu 14.1-1.pgdg18.04+1); версия pg_dump: 13.5 (Debian 13.5-1.pgdg100+1)
[2022-01-17 03:38:08] pg_dump: ошибка: прерывание из-за несоответствия версий сервера
[2022-01-17 03:38:08] ИСКЛЮЧЕНИЕ: pg_dump завершился ошибкой
Есть ли способ обновить postgresql-client 13.5-1.pgdg100+1 в контейнере до версии 14?
Мы обновляем версии Postgres каждые два выпуска, так как обновление базы данных требует огромных инженерных ресурсов. В настоящее время мы используем Postgres 13, поэтому перейдём на Postgres 15.1, когда он будет выпущен (в виде исправления ошибок).
Я это понимаю, но спасибо, что указали на политику обновлений — очень полезно знать. Мы осведомлены о затратах инженерных ресурсов на работу с БД. Я люблю Postgres, но обновление нашего кластера обычно делает нас изрядно набожными католиками — много молитв перед началом, но всё равно приходится проливать много крови, пота и слёз.
Не вызовет ли это проблем с зависимостями Ruby-гемов самого приложения? Насколько я понимаю, добавление apt install в качестве хука требует выполнения launcher rebuild app, верно? Если так, я бы пропустил это ради ещё одного ненавистного обновления, как описано здесь в другой моей теме, — у нас возникают серьёзные проблемы с пересборкой приложения внутри Китая. Именно поэтому я хотел бы уточнить, поможет ли просто зайти в приложение и затем вручную установить его через apt.
Я рекомендую протестировать это на staging-среде перед внесением изменений в production, но я думаю, что с Ruby-гамами проблем не возникнет. Установка в работающем контейнере также должна сработать.
??? это требует огромных инженерных ресурсов ???
Кажется, что эти простые строки команд для обновления базы данных PostgreSQL с версии 13.5 до 14.1 решают проблему с резервным копированием… Ура!
cd /var/discourse
./launcher enter app
sudo apt-get install postgresql