Digital Ocean 드롭렛에서 Discourse 업데이트가 실패했습니다. 드롭렛 백업을 복원해 보았지만, 백업에서 Discourse가 새 드롭렛에 설치되지 않은 것 같습니다. 새 드롭렛을 생성하고 Discourse를 새로 설치했는데, Amazon S3 백업은 인식됩니다. 복원을 클릭하면 사이트의 모든 게시물 등이 정상적으로 보이는데, 갑자기 복원이 실패하고 롤백됩니다. 왜 그런지, 그리고 Discourse를 정상적으로 실행하기 위해 다음으로 무엇을 해야 하는지 모르겠습니다. 참고용으로 로그 파일을 첨부합니다.
log 3.txt (93.8 KB)
569개의 게시물이 새로운 S3 업로드 URL로 재매핑되지 않았습니다. ‘default’ 데이터베이스의 S3 마이그레이션이 실패했습니다.
새로운 S3 업로드 URL이 있다는 메시지는 이전 상황과 다르게 구성했다는 것을 의미합니다. 그리고 실패했다는 메시지는 새로운 구성도 올바르지 않다는 것을 나타냅니다.
해결 방법: app.yml에 설정된 변수가 이전 설치 환경과 동일한지 확인하세요.
실패한 discourse 업데이트 드롭렛에서 app.yml 파일을 가져와서 백업을 복원하려는 새 드롭렛으로 옮겼습니다. 여전히 569개의 게시글에서 실패합니다. 이 게시글들을 건너뛰거나 다른 방법으로 이 문제를 해결할 수 있는 방법이 있을까요? 569개의 게시글보다는 전체 포럼을 복구하는 쪽이 더 낫습니다.
보통은 이전 작업을 하기 전에 s3 업로드를 비활성화하는 것이 제 일반적인 방법입니다. 하지만 원래 포럼이 다운되어 있어 그 선택지가 없으리라 추측합니다.
이 방법이 실제로 작동할지는 100% 확신할 수 없지만, 시도해 볼 수 있습니다.
app.yml파일에DISCOURSE_ENABLE_S3_UPLOADS: false를 설정합니다.- 복원합니다.
- 해당 줄을 제거합니다.
- 다시 빌드합니다.
이 방법으로 해결되지 않으면, 백업의 dump.sql 파일을 편집하여 해당 설정을 false로 변경해 볼 수 있습니다.