안녕하세요! Discourse(Docker)를 설치할 때 데이터베이스에서 설정한 비밀번호를 확인할 수 없습니다.
원격으로 데이터베이스에 연결하려고 하는데, Discourse가 모든 Docker 이미지에는 동일한 비밀번호를 설정한다고 생각하기 때문입니다.
moschino님
,
기술적인 부분은 잘 모르겠지만, 컨테이너 안에 있으면 discourse 사용자로 비밀번호 없이 데이터베이스에 연결할 수 있을 것 같아요.
도움이 되길 바라요:
./launcher enter app
su - discourse
psql
왜 그렇게 하려고 하시나요? 보통 데이터 탐색기(Data Explorer)가 그런 작업을 수행하는 더 나은 방법입니다.
기본적으로 데이터베이스는 포트에 노출되지 않습니다.
정말 데이터베이스를 외부에 노출하고 싶다면 두 컨테이너 구성(2-container setup)으로 재설치하세요(discourse-setup --two-container). 새 서버에서 하는 것이 가장 쉽지만, 기존 서버에서 전환하는 방법에 대한 주제도 있습니다.
거의 확실하게 나쁜 아이디어입니다. 데이터 탐색기나 API를 사용하세요.
그렇다면 config/database.yml 파일의 올바른 내용은 무엇일까요? 프로덕션 환경에 대한 예시를 공유해 주실 수 있을까요?
해당 파일에 데이터베이스가 나열되어 있지 않고, Ruby가 일부 작업(예: export override_translations)에서 실패하고 있습니다. 설치 환경에 문제가 있는 것 같습니다.
현재 config/database.yml에는 dev와 test 데이터베이스만 표시되고 있으며, 실제로 현재 작동 중인 데이터베이스 스키마에 맞게 수정하고 싶습니다 ![]()
컨테이너화된 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 문제를 우회적으로 수정할 수 있게 해 줍니다).
아마도 이건 표준 설치가 아닌 것 같네요.
네, 맞습니다. 하지만 개발 환경과 프로덕션 환경을 혼동한 것 같네요.
커스텀 로케일 문자열에서 이모지 관련 문제가 있는 것 같습니다. 확인해 보겠습니다.