데이터베이스에서 비밀번호를 가져오는 방법?

안녕하세요! Discourse(Docker)를 설치할 때 데이터베이스에서 설정한 비밀번호를 확인할 수 없습니다.
원격으로 데이터베이스에 연결하려고 하는데, Discourse가 모든 Docker 이미지에는 동일한 비밀번호를 설정한다고 생각하기 때문입니다.

moschino님 :wave:,

기술적인 부분은 잘 모르겠지만, 컨테이너 안에 있으면 discourse 사용자로 비밀번호 없이 데이터베이스에 연결할 수 있을 것 같아요.

도움이 되길 바라요:

./launcher enter app
su - discourse
psql

왜 그렇게 하려고 하시나요? 보통 데이터 탐색기(Data Explorer)가 그런 작업을 수행하는 더 나은 방법입니다.

기본적으로 데이터베이스는 포트에 노출되지 않습니다.

정말 데이터베이스를 외부에 노출하고 싶다면 두 컨테이너 구성(2-container setup)으로 재설치하세요(discourse-setup --two-container). 새 서버에서 하는 것이 가장 쉽지만, 기존 서버에서 전환하는 방법에 대한 주제도 있습니다.

거의 확실하게 나쁜 아이디어입니다. 데이터 탐색기나 API를 사용하세요.

Run Data Explorer queries with the Discourse API 참고하세요.

그렇다면 config/database.yml 파일의 올바른 내용은 무엇일까요? 프로덕션 환경에 대한 예시를 공유해 주실 수 있을까요?

해당 파일에 데이터베이스가 나열되어 있지 않고, Ruby가 일부 작업(예: export override_translations)에서 실패하고 있습니다. 설치 환경에 문제가 있는 것 같습니다.

현재 config/database.yml에는 dev와 test 데이터베이스만 표시되고 있으며, 실제로 현재 작동 중인 데이터베이스 스키마에 맞게 수정하고 싶습니다 :slight_smile:

컨테이너화된 Discourse 인스턴스에서 psql을 통해 프로덕션 데이터베이스를 읽을 수 있습니다.

discourse를 어떻게 설치하셨나요?

어떤 문제를 해결하려고 하시나요?

무언가 잘못되었다는 증거는 무엇인가요?

rake db:migrate

가 무엇을 수행하는지 확인해 보실 수 있습니다.

데이터베이스 이름은 환경 변수에 있습니다.

es_XX 사용자 정의 언어를 내보내지 못하고 있으며, 이는 잘못된 설정과 관련이 있을 수 있다고 의심합니다. 하지만 그런 경우에도 yml 파일에 production 비밀번호와 호스트가 선언되어 있지 않은 것으로 보입니다.

LANG와 DISCOURSE_DEFAULT_LOCALE을 시도해 보았지만, 그것만으로는 부족할 것입니다.

현재 LANG = en_US.UTF-8 및 DISCOURSE_DEFAULT_LOCALE = es를 사용하고 있습니다(이것은 trust_level on custom-locale issue 문제를 우회적으로 수정할 수 있게 해 줍니다).

아마도 이건 표준 설치가 아닌 것 같네요.

네, 맞습니다. 하지만 개발 환경과 프로덕션 환경을 혼동한 것 같네요.

커스텀 로케일 문자열에서 이모지 관련 문제가 있는 것 같습니다. 확인해 보겠습니다.