2.6.0.beta1에서 최신 안정판으로 업그레이드

안녕하세요,

현재 2.6.0.beta1 버전을 사용 중이며, 이제 최신 버전으로 업그레이드하려 합니다. 단, 안정화된 버전이어야 합니다. 2.6.0은 오래된 버전이므로 주의해야 할 점이 있을까요? 물론 먼저 백업을 수행하겠지만, 혹시 팁이 있을까요? :slight_smile:

VM의 OS가 지원될 가능성은 거의 없습니다. 데이터베이스 파일을 건너뛰고, 새 컨테이너를 빌드한 후 기존 사이트의 백업을 복원하는 방식으로 rsync를 사용하여 Discourse 사이트를 다른 VPS로 이전하는 것을 권장합니다.

사실, 기존 app.yml을 사용하는 것보다 discourse-setup을 새로 실행하고 SMTP 설정 등을 복사해 오는 것이 더 나을 것입니다. 해당 부분에도 몇 가지 변경 사항이 있었기 때문입니다.

VM에서 OS를 업그레이드하여 최신 버전으로 업데이트한다고 가정해 보겠습니다. 그 이후로 PostgreSQL 업그레이드도 최소 두 번 이루어졌습니다. 제자리 업그레이드를 시도하면 잘 되지 않을 것입니다. 만약 시도했다가 실패하더라도 "말했잖아"라고 하지는 않겠지만, 다른 말도 하지 않을 것입니다.

답변해 주셔서 감사합니다. 저희도 새 서버로 이전해야 해서, 원래 계획은 먼저 기존 Discourse를 새 서버로 옮긴 다음 업데이트를 하는 것이었습니다.

그래도 새 Discourse를 설치하는 것을 권장하시나요?

새 서버로 이전하는 것이 훨씬 안전합니다. 새 서버가 정상적으로 작동할 때까지 기존 서버를 건드릴 필요가 없기 때문입니다!

제가 하라면 rsync 가이드를 따르되 postgres_*는 제외하겠습니다. 그런 다음 app.yml을 이름 변경하고 ./discourse-setup --skip-connection-test를 실행하겠습니다. (아직 DNS가 새 서버를 가리키지 않기 때문입니다.) 이후 백업을 복원합니다. 보통 로컬 DNS를 새 서버를 가리키도록 변경하여 새 서버가 정상 작동하는지 테스트할 수 있습니다. 최악의 경우, DNS를 변경한 후 문제가 발생하면 DNS를 다시 원래대로 되돌리면 됩니다. (Digital Ocean 등 플로팅 IP를 여러 VM에 지정할 수 있는 경우라면 DNS 설정을 고민할 필요 없이 IP만 다시 지정하면 됩니다.)

지난 몇 달 동안 이 작업을 약 10회 수행했습니다. 직접 진행하기 꺼려지시다면 제가 도와드릴 수 있습니다.

제이, 안녕?

프라이빗 메시지로 연락을 보냈어.

네, 이 부분은 항상 궁금했던 사항입니다. 스테이징 도메인이 필요 없는 건가요? 도메인이 두 번 변경되어 두 번의 재작성(rewrite)이 일어나지 않는 건가요?

ssl과 let’s encrypt 디렉터리를 복사하면 기존 호스트 이름에 대한 인증서가 준비됩니다. 서버는 해당 도메인을 제공할 준비가 되어 있지만, DNS가 그곳을 가리키지 않으므로 실제로는 제공할 수 없습니다.

보통은 기존 yml 파일들을 그대로 복사해 오지만, 이 오래된 사이트의 경우 새로 생성하는 것도 나쁘지 않은 생각입니다. 이번 기회에 제가 발견한 몇 가지 이상한 수정 사항들을 남겨두지 않는 것이 좋을 것 같다는 것을 깨달았기 때문입니다.

하지만, 영리한 방법으로는 브라우저를 속여서 해당 사이트로 접속하게 만든 후, 문제가 없는지 확인한 다음 DNS를 전환하여 다른 사용자들도 볼 수 있게 할 수 있습니다. (그리고 나중에 혼란에 빠지지 않도록, 브라우저를 다시 정상 상태로 되돌리는 것도 잊지 마세요.)