오늘, 제 discourse 포럼이 상당히 오래되었다고 해서 업그레이드해 달라는 요청을 받았습니다.
현재 제 서버에는 두 개의 discourse 도커가 실행 중이며, 서로 다른 yaml 파일(각각 올바른 도메인 이름으로 라우팅하는 Nginx 프록시 포함)을 사용하고 있습니다.
업그레이드하려는 discourse의 YML 파일은 containers/applimen.yml에 있었고, 오래된 문서에 따라 포럼 관련 정보를 모두 입력해 두었습니다.
그런 다음, launcher 스크립트가 있는 폴더에서 지시받은 명령을 실행했습니다:
git pull
./launcher rebuild applimen
놀랍게도 포럼 전체가 새로 생성된 것을 확인했습니다. 기존 게시물이 하나도 남아 있지 않았습니다. 처음부터 새 계정을 만들어야 한다는 요청을 받았습니다.
제가 무엇을 잘못했는지, 그리고 원래 어떻게 해야 했는지 알려 주실 수 있을까요? 다른 discourse도 업그레이드해야 합니다. 이미 discourse 하나에 대한 데이터를 잃어버렸고, 두 번째 것도 잃고 싶지 않습니다.
pfaffman
(Jay Pfaffman)
7월 30, 2023, 7:22오전
2
yml 파일의 내용을 붙여넣어야 합니다. 제 추측으로는 커스텀 yml 파일을 만들 때 데이터베이스에 대한 영구 공유(persistent share)를 생성하지 않은 것 같습니다.
백업이 없을 것으로 생각됩니다. 만약 백업이 있었다면, 그것도 컨테이너 내부에만 존재했을 것입니다.
이것이 어떻게 설정되어야 하는지 samples 디렉토리를 확인해 보세요. 다른 설정도 같은 방식으로 되어 있다면, 컨테이너에 진입하여 postgres를 중지하고 컨테이너에서 파일을 복사해 내거나, S3 백업을 구성하여 백업을 생성해야 합니다.
RGJ
(Richard - Communiteq)
7월 30, 2023, 7:26오전
3
또 다른 가능한 원인은 app.yml에 데이터베이스 설정을 올바르게 영구 저장하지 않았기 때문일 수 있습니다. 이는 포럼 데이터가 여전히 존재하지만 현재 포럼에 로드되지 않고 있다는 것을 의미합니다. 여기서 그 원인을 정확히 파악하기 어렵기 때문에, 경험이 있는 사람이 확인해 보도록 하시기 바랍니다.