어떤 PostgreSQL DB 버전이 지원되는지 관련 노트가 어딘가에 있나요?
각 Discourse 릴리스 버전별로 지원되는 PostgreSQL 버전을 확인할 수 있으면 좋겠습니다. 특히 더 이상 지원되지 않는 PostgreSQL 버전이 있다면 더 그렇습니다.
어떤 PostgreSQL DB 버전이 지원되는지 관련 노트가 어딘가에 있나요?
각 Discourse 릴리스 버전별로 지원되는 PostgreSQL 버전을 확인할 수 있으면 좋겠습니다. 특히 더 이상 지원되지 않는 PostgreSQL 버전이 있다면 더 그렇습니다.
Postgres는 Discourse의 Docker 컨테이너에 번들링되어 있어 일반적으로 별도의 관리가 필요하지 않습니다. Discourse 팀은 새로운 릴리스가 나올 때마다 Postgres 버전을 업그레이드하며, 업그레이드 전에는 충분한 테스트를 거칩니다. 가장 최근 업그레이드는 13 버전으로 이루어졌으며, 해당 업그레이드의 세부 사항은 다음 링크에서 확인할 수 있습니다:
글쎄요, 모든 사용자가 번들된 PostgreSQL 데이터베이스를 사용하는 것은 아닙니다.
현재 설치 문서에는 필요한 버전으로 Postgres 10 이상이 명시되어 있습니다:
다만, 공식적으로 지원되는 환경은 Docker 컨테이너를 사용하는 구성뿐입니다.
네, “지원되는” PostgreSQL 버전(모든 버전이 “강력하게” 지원되는 것은 아니지만, Docker 빌드 관점에서의 지원)은 discourse_docker의 templates 디렉터리에 나열되어 있습니다.
다만, 가능하면 최신 PostgreSQL 버전인 현재 13 버전으로 전환하는 것을 강력히 권장합니다.
그러나 조직 내의 특정 로컬 제약 사항으로 인해 최신 버전을 실행할 수 있는 호스트가 아닌 경우, discourse_docker templates 디렉터리를 조사하기에 좋은 장소입니다.
3년 만에 다시 확인해 보니: Docker 템플릿에는 여전히 PG_MAJOR=13로 되어 있지만, PostgreSQL의 새 버전이 있습니다: 2021년 14, 2022년 15, 그리고 2023년 16.
즉, 최신 버전인 PostgreSQL 16(2028년 EOL 예정) 대신 13 버전(2025년 EOL 예정) 사용을 여전히 권장하는 것인가요?
네, 맞습니다.
이미 15버전을 실행 중인 사이트들이 몇 개 있고, 내년에는 13번에서 업데이트할 예정입니다.
질문: 현재 상태는 어떤가요? 외부 pg 데이터베이스를 사용 중이며, 데이터베이스 서버를 13에서 업그레이드하고 싶습니다. postgres 16은 2023-09-14에 출시되었습니다. discourse와 함께 사용할 수 있나요? 데이터베이스 자체에 대해 마이그레이션 단계가 필요할까요? (서버 측의 전역 마이그레이션 단계를 제외하고)
PostgreSQL 13은 여전히 공식적으로 지원되는 버전이며, 지난 달에 출시된 13.15 버전도 여전히 지원되고 있습니다.
현재 상당수의 사이트에서 버전 15를 사용하고 있으며, 이는 정상적으로 작동하는 것으로 확인된 버전입니다. 향후 셀프호스팅 사용자를 위한 업데이트를 제공할 계획입니다.
버전 16은 개발용 머신을 제외하고는 광범위하게 테스트되지 않았습니다. 하지만 모험심을 발휘해 사용해 보고 문제가 발생하는지 확인해 보고 싶으시다면, 그 결과를 알려주세요!
Discourse가 Postgres에서 특별한 작업을 수행하여, Postgres의 새 버전으로 업그레이드할 때 간단한 덤프 및 복원으로는 작동하지 않을 수 있는가?
15로 업그레이드를 시도해야 하는 이유가 있는지 확인하려고 이 스레드를 다시 올립니다. 16이나 17 대신 말입니다.
그리고 언제 PostgreSQL을 업그레이드할 수 있을 것으로 예상하나요?
여러분, 안녕하세요. AWS RDS PostgreSQL 16.4로 이전을 마쳤는데, 현재는 잘 동작하는 것 같습니다.
현재 사용 중인 Discourse 버전은 3.4.0.beta3-dev입니다.
아직 모든 기능을 다 테스트해 보지는 않았지만
, 게시판 자체는 잘 돌아가는 것 같습니다. 하지만…
아래 오류로 인해 백업을 생성할 수 없습니다.
[2024-12-13 08:36:07] Making sure '/var/www/discourse/tmp/backups/default/2024-12-13-083607' exists...
[2024-12-13 08:36:07] Making sure '/var/www/discourse/public/backups/default' exists...
[2024-12-13 08:36:07] Updating metadata...
[2024-12-13 08:36:07] Dumping the public schema of the database...
[2024-12-13 08:36:08] pg_dump: error: server version: 16.4; pg_dump version: 13.18 (Debian 13.18-1.pgdg120+1)
[2024-12-13 08:36:08] pg_dump: error: aborting because of server version mismatch
[2024-12-13 08:36:08] EXCEPTION: pg_dump failed
이상한 점은, 내부 메커니즘을 통해 데이터를 가져오는 것은 실제로 가능했다는 것입니다.
제가 수행한 작업은 다음과 같습니다:
이 문제를 해결할 수 있는 방법이 있을까요?
인사드립니다,
JP
자, 이제 흥미진진해지네요.
며칠간 업무를 보지 않아 새 회사 보드를 확인하지 못했거든요.
오늘 확인해 보니 예약된 백업은 정상적으로 작동했고, 다시 수동 백업을 시도해 봤는데 이번에는 실패했습니다 ![]()
예약 백업:
Dumping the public schema of the database...
[2024-12-04 06:02:16] pg_dump: last built-in OID is 16383
[2024-12-04 06:02:16] pg_dump: reading extensions
[2024-12-04 06:02:16] pg_dump: identifying extension members
[2024-12-04 06:02:16] pg_dump: reading schemas
[2024-12-04 06:02:16] pg_dump: reading user-defined tables
[2024-12-04 06:02:16] pg_dump: reading user-defined functions
[2024-12-04 06:02:16] pg_dump: reading user-defined types
......
pg_dump: dumping contents of table "public.themes"
[2024-12-04 06:02:19] pg_dump: processing data for table "public.top_topics"
[2024-12-04 06:02:19] pg_dump: dumping contents of table "public.top_topics"
[2024-12-04 06:02:19] Finalizing backup...
[2024-12-04 06:02:19] Creating archive: scp-talk-2024-12-04-060216-v20241127034553.tar.gz
[2024-12-04 06:02:19] Making sure archive does not already exist...
[2024-12-04 06:02:19] Creating empty archive...
[2024-12-04 06:02:19] Archiving data dump...
[2024-12-04 06:02:19] Archiving uploads...
[2024-12-04 06:02:19] Removing tmp '/var/www/discourse/tmp/backups/default/2024-12-04-060216' directory...
[2024-12-04 06:02:19] Gzipping archive, this may take a while...
[2024-12-04 06:02:19] Executing the after_create_hook for the backup...
[2024-12-04 06:02:19] Deleting old backups...
[2024-12-04 06:02:19] Cleaning stuff up...
[2024-12-04 06:02:19] Removing '.tar' leftovers...
[2024-12-04 06:02:19] Marking backup as finished...
[2024-12-04 06:02:19] Refreshing disk stats...
[2024-12-04 06:02:19] Notifying '<me>' of the end of the backup...
수동 백업:
[2024-12-16 10:03:54] '<me>' has started the backup!
[2024-12-16 10:03:54] Marking backup as running...
[2024-12-16 10:03:54] Making sure '/var/www/discourse/tmp/backups/default/2024-12-16-100354' exists...
[2024-12-16 10:03:54] Making sure '/var/www/discourse/public/backups/default' exists...
[2024-12-16 10:03:54] Updating metadata...
[2024-12-16 10:03:54] Dumping the public schema of the database...
[2024-12-16 10:03:54] pg_dump: error: server version: 16.4; pg_dump version: 13.18 (Debian 13.18-1.pgdg120+1)
[2024-12-16 10:03:54] pg_dump: error: aborting because of server version mismatch
[2024-12-16 10:03:54] EXCEPTION: pg_dump failed
흠, 혹시 아이디어가 있으신가요?
정말 이상하네요 ![]()
외부 데이터베이스를 사용하는 환경에서 3.4.0.beta3로 업그레이드하면 백업이 실패한다는 것을 확인했습니다.
3.4.0.beta3 (태그) 인스턴스를 두 개 보유하고 있습니다: 1) Postgres-in-Docker (기본 설정); 2) 외부 Postgres (로컬 셀프호스팅).
첫 번째 인스턴스는 예약 및 수동 백업 모두 정상적으로 수행됩니다:
[2024-12-23 11:11:43] Marking backup as running...
[2024-12-23 11:11:44] Making sure '/var/www/discourse/tmp/backups/default/2024-12-23-111143' exists...
[2024-12-23 11:11:44] Making sure '/var/www/discourse/public/backups/default' exists...
[2024-12-23 11:11:44] Updating metadata...
[2024-12-23 11:11:44] Dumping the public schema of the database...
[2024-12-23 11:11:44] pg_dump: last built-in OID is 16383
[2024-12-23 11:11:44] pg_dump: reading extensions
[2024-12-23 11:11:44] pg_dump: identifying extension members
[2024-12-23 11:11:44] pg_dump: reading schemas
...
두 번째 인스턴스는 실패합니다:
[2024-12-21 03:35:21] Marking backup as running...
[2024-12-21 03:35:21] Making sure '/var/www/discourse/tmp/backups/default/2024-12-21-033521' exists...
[2024-12-21 03:35:21] Making sure '/var/www/discourse/public/backups/default' exists...
[2024-12-21 03:35:21] Updating metadata...
[2024-12-21 03:35:21] Dumping the public schema of the database...
[2024-12-21 03:35:22] pg_dump: error: server version: 16.6 (Ubuntu 16.6-0ubuntu0.24.04.1); pg_dump version: 13.18 (Debian 13.18-1.pgdg120+1)
[2024-12-21 03:35:22] pg_dump: error: aborting because of server version mismatch
[2024-12-21 03:35:22] EXCEPTION: pg_dump failed
...
어제 업그레이드를 수행했으며, 버전 불일치로 인해 예약된 백업이 실패하는 것을 확인했습니다.
docker에 진입하여 더 새로운 버전의 postgresql-client를 설치하면 해결할 수 있습니다.
/var/discourse/launcher enter app
apt update
apt install postgresql-client
여러분,
현재 RDS에서 암호화된 PostgreSQL DB로 전환했고, 어제에도 같은 작업을 수행했습니다(이전 단계에서 설명드린 대로 백업 생성, app.yml 편집, 재빌드 등). 어제는 정상적으로 작동했습니다.
오늘은 PROD 환경에서 같은 작업을 시도했는데, 이제 다음과 같은 오류가 발생하고 있습니다. ![]()
Creating missing functions in the discourse_functions schema…
Restoring dump file… (this may take a while)
SET
SET
SET
ERROR: unrecognized configuration parameter “transaction_timeout”
EXCEPTION: psql failed: ERROR: unrecognized configuration parameter “transaction_timeout”
DBeaver를 통해 DB에 직접 접속해 보니, 여기서도 같은 오류가 발생합니다(어제까지는 완벽하게 작동했던 데이터베이스인데도요). 두 경우 모두 백업은 최신 상태였습니다.
밤사이 무언가를 변경하신 건가요? ![]()
감사드리며 인사드립니다.
WS
안녕하세요,
백업 파일에 생성된 덤프를 확인해 보았습니다:
상단에 다음과 같은 내용이 포함되어 있습니다.
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET transaction_timeout = 0;
SET client_encoding = ‘UTF8’;
SET standard_conforming_strings = on;
여기서 transaction_timeout 파라미터가 좀 이상합니다 ![]()
transaction_timeout은 PostgreSQL 17에서 추가되었기 때문입니다.
여기에서 명시되어 있습니다:
https://pgpedia.info/t/transaction_timeout.html
도움이 필요합니다 ![]()
감사합니다!
감사합니다,
Wurzelseppi
컨테이너 YAML 파일을 수정하여 postgresql-client 업데이트를 재빌드 과정의 자동화 단계로 실행할 수 있는 방법이 있을까요?