postgres-client 버전을 업그레이드할 가능성이 있을까요?

외부 데이터베이스를 사용하여 통합된 Docker 기반 Postgres 대신 Discourse를 운영하고 있습니다. 최근 Postgres 클러스터를 14로 업그레이드해야 했는데, 이로 인해 Discourse 백업이 계속 실패하고 있습니다.

로그 출력

[2022-01-17 03:38:08] Dumping the public schema of the database...
[2022-01-17 03:38:08] pg_dump: error: server version: 14.1 (Ubuntu 14.1-1.pgdg18.04+1); pg_dump version: 13.5 (Debian 13.5-1.pgdg100+1)
[2022-01-17 03:38:08] pg_dump: error: aborting because of server version mismatch
[2022-01-17 03:38:08] EXCEPTION: pg_dump failed

컨테이너의 postgresql-client 13.5-1.pgdg100+1을 14 버전으로 업그레이드할 수 있는 방법이 있을까요?

데이터베이스 업그레이드에 막대한 엔지니어링 리소스가 필요하기 때문에, 우리는 2개 릴리스마다 Postgres 버전을 업그레이드합니다. 현재 Postgres 13을 사용 중이므로, Postgres 15.1이 릴리스되면(버그 수정용 포인트 릴리스) 해당 버전으로 업그레이드할 예정입니다.

그 점은 충분히 이해합니다. 다만 업그레이드 정책에 대해 짚어주셔서 감사합니다. 정말 좋은 정보가 됐습니다. 저희도 데이터베이스 관련 엔지니어링 리원의 중요성을 잘 알고 있습니다. Postgres를 정말 좋아하지만, 클러스터를 업그레이드할 때마다 마치 열심 가톨릭 신자가 되는 것 같습니다. 업그레이드 전 온갖 기도를 올리고 그래도 결국 피와 땀, 그리고 눈물을 흘리게 되거든요.

적절한 apt-get 명령을 app.yml에 추가하여 필요한 postgresql-client를 수동으로 설치할 수 있어야 합니다.

이것이 애플리케이션 자체의 Ruby gems와 관련하여 의존성 문제를 일으킬 수 있을까요? 제 이해가 맞다면, apt install을 훅으로 추가하려면 launcher rebuild app이 필요할 텐데, 맞나요? 그렇다면 제 다른 토픽에서 설명한 바와 같이 또 다른 고통스러운 업그레이드를 피하기 위해 이 방법을 건너뛰고 싶습니다. 중국 내에서 앱을 재빌드하는 과정에서 막대한 문제를 겪고 있기 때문입니다. 그래서 앱에 직접 진입한 후 apt를 통해 수동으로 설치하는 것만으로도 해결이 될지 확인하고 싶습니다.

프로덕션 환경에서 작업하기 전에 먼저 스테이징 사이트에서 테스트해 보시는 것을 추천드립니다. 다만, Ruby gems와 관련하여서는 문제가 발생하지 않을 것이라 생각합니다. 실행 중인 컨테이너에 설치하는 방식도 잘 작동할 것입니다.

그러면 2023년에 다음 해에 스크립트를 만들겠다는 건가요? PostgreSQL: Versioning Policy

백업 실패에 대해 새 티켓을 작성해야 할까요?

??? 엔지니어링 리소스가 상당량 소요됩니다 ???
postgresql 데이터베이스를 13.5에서 14.1로 업데이트하는 이 간단한 명령어들이 백업 문제를 해결하는 것 같습니다… 감사합니다

cd /var/discourse
./launcher enter app
sudo apt-get install postgresql

공식적으로 지원하는 것이라면 그렇습니다.