Configure Discourse to use a separate PostgreSQL server

아니요, 괜찮습니다. 정보 주셔서 감사합니다.

내 경우에는 인증 메커니즘에 trust가 아닌 scram-sha-256을 사용하고 있었기 때문입니다.
scram-sha-256은 물리적 사용자를 요구하기 때문입니다.
pg_ident.conf에서 사용자 맵을 생성하여 우회할 수 있을지 모르겠지만, 정확한 방법은 잘 모르겠습니다.

“물리적 사용자”가 “Unix 시스템 사용자”를 의미한다면, scram-sha-256은 시스템에 해당 사용자가 설정되어 있을 필요는 없습니다. peer 메서드는 시스템 사용자를 요구하며, 원격 데이터베이스 서버를 사용할 때 trust는 전반적으로 매우 나쁜 아이디어입니다.

1개의 좋아요

기존 프로세스 외에 아래 내용을 추가로 포함해야 하나요?

CREATE EXTENSION vector;

discourse_docker의 postgres 템플릿에서 이 확장 기능이 보이기 때문입니다.

이것은 Discourse AI 코어 플러그인에서 사용되므로, 해당 플러그인을 사용 중이라면 필요합니다.

그 플러그인을 활성화한 기억이 없습니다. 사실 방금 확인해 보니 비활성화되어 있었습니다. 하지만 최근에 이미지를 재빌드했을 때, 최신 커밋이 이 커밋 - GitHub - discourse/discourse at 0eab7daea450e1d7e416c46a23aaaf95687d4855 · GitHub - 을 넘어서자 rake db:migrate가 실패하기 시작했습니다. 위 커밋 바로 앞 커밋으로 부트스트랩을 했을 때는 계속 정상적으로 작동했습니다.

이제 이 확장 기능을 활성화했더니, 해당 커밋 이후의 커밋들은 문제없이 작동하고 있습니다.

1개의 좋아요

하지만 이제 AI 플러그인이 코어에 포함되었기 때문에, AI 플러그인을 사용하든(혹은 의도적으로 제거하든) 확장 기능이 필요하다는 뜻이죠?

1개의 좋아요

맞아요, 마이그레이션은 플러그인이 활성화되어 있는지와 무관하게 독립적으로 실행되니까요.

2개의 좋아요

관리형 PostgreSQL 서버를 슈퍼유저가 아닌 계정으로 사용 중인 경우, vector 확장이 수동으로 데이터베이스에 추가되었음에도 불구하고 EnablePgVectorExtension (‘20230710171141’) 단계에서 DB 마이그레이션이 실패합니다. 이 마이그레이션 단계를 비활성화하거나 vector 확장이 이미 존재하는지 확인하는 방법이 있을까요?

원인:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: vector는 신뢰할 수 있는 확장이 아니므로, "azure_pg_admin"의 구성원만 CREATE EXTENSION vector를 사용할 수 있습니다 (ActiveRecord::StatementInvalid)
HINT: 확장을 허용하는 방법 또는 허용된 확장 목록을 확인하려면 Search - Microsoft Bing 참조하세요.

지난 달에 이 문제를 처리하기 위한 PR을 병합했습니다. 최신 버전을 사용 중이신가요?

1개의 좋아요

감사합니다! 저는 discourse/discourse:3.5.3 도커 이미지를 사용하고 있습니다. 최신 PR이 포함되어 있는지 확실하지 않습니다. (수정: Release v2025.12.0에는 해당 PR이 포함되어 있으며 Azure DB와 함께 작동합니다)

1개의 좋아요

참고로, 2026.7.2를 사용한 새로고침 설치(refresh install)에서 동작이 회귀(regression)되었습니다.

psql:/var/www/discourse/db/structure.sql:44: ERROR:  Because vector isn't a trusted extension, only members of "azure_pg_admin" are allowed to use CREATE EXTENSION vector
HINT:  to learn how to allow an extension or see the list of allowed extensions, please refer to https://go.microsoft.com/fwlink/?linkid=2301063

확장 프로그램을 설치할 수 있는 사용자와 연결해야 합니다. 이는 제공업체에 따라 다릅니다.

정보를 공유해 주셔서 감사합니다. 이전 버전(v2026.1)에서는 Discourse의 내장 설정 마이그레이션이 실행되기 전에, 별도의 관리자 계정으로 CREATE EXTENSION vector를 먼저 데이터베이스에 실행할 수 있었습니다. 하지만 현재 마이그레이션은 vector가 이미 존재하는지 확인하지 않습니다. 이렇게 하면 discourse DB 계정에 관리자 권한을 부여할 필요가 없어집니다.