PostgreSQL 설치 문제 해결
Mattermost v8.0부터 PostgreSQL은 플랫폼의 성능과 기능을 강화하기 위해 Mattermost가 선택한 데이터베이스입니다.
PostgreSQL v15에는 이전 릴리스와의 호환성에 영향을 줄 수 있는 변경 사항이 포함되어 있습니다. PostgreSQL v15를 새로 설치해 배포하는 경우, Mattermost를 사용할 수 있도록 다음 명령을 실행하세요. GRANT CREATE ON SCHEMA public TO PUBLIC
영어가 아닌 default_text_search_config에서 PostgreSQL 전문 검색이 인덱스를 사용하지 못하는 문제
Mattermost는 PostgreSQL 데이터베이스의 전문 검색에 하드코딩된 텍스트 검색 설정 대신 default_text_search_config를 사용합니다. 그러나 인덱스는 여전히 하드코딩된 텍스트 검색 설정(english)으로 생성되며, 그 결과 전문 검색이 인덱스를 전혀 사용하지 못할 수 있습니다.
Posts나 Users 같은 Mattermost의 일부 테이블에는 PostgreSQL의 데이터베이스 전문 검색 기능을 개선하기 위한 GIN 인덱스가 포함되어 있습니다.
이 인덱스들은 특정 언어를 기준으로 만들어져야 하는데, 생성 시점에 영어로 하드코딩됩니다. 반면 전문 검색 쿼리는 항상 default_text_search_config 데이터베이스 설정을 사용해 수행됩니다. 전문 검색 기능이 인덱스를 활용하려면 쿼리에 지정된 언어와 인덱스에 지정된 언어가 일치해야 합니다.
default_text_search_config가 english로 설정되어 있지 않으면 GIN 인덱스는 사용되지 않습니다. 데이터베이스 관리자는 필요한 GIN 인덱스를 삭제한 뒤 default_text_search_config 값으로 다시 만드는 방식으로 이 문제를 우회할 수 있습니다.
예를 들어 서버의 기본 언어가 스페인어인 경우는 다음과 같습니다.
# Create the new index with a new name before dropping the old one
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_posts_message_txt_spanish ON posts USING gin(to_tsvector('spanish', message));
# Check that the new index does work. If it does, drop the old one and rename the new one:
DROP INDEX CONCURRENTLY IF EXISTS idx_posts_message_txt;
ALTER INDEX idx_posts_message_txt_spanish RENAME TO idx_posts_message_txt;
PostgreSQL 사용자 이름과 비밀번호 변경
.env 파일에서 PostgreSQL 사용자 이름과 비밀번호를 변경하는 것을 권장합니다.