복원 실패: "일부 업로드를 새 스키ماً 이식할 수 없음"

며칠째 한 서버에서 다른 서버로 복원 작업을 시도하고 있습니다. 원래 서버는 2016년에 시작되었기 때문에 몇 가지 레거시 문제가 있습니다. 오래된 인증서가 만료되면서 이 문제를 해결하기 시작했는데, 백업/복원 주기 동안 다양한 문제에 직면하게 되었습니다.

원래 서버와 새 서버 모두 안정 버전(stable branch)의 v2.5로 고정되어 있습니다. 일부 게시글에서 플러그인 관련 문제가 언급되었기 때문에, 잠재적인 문제를 격리하기 위해 포함된 플러그인 중 일부도 제거했습니다.

이전에는 데이터베이스 관련 문제가 있었는데, 이 게시글의 안내에 따라 문제적인 항목들을 정리하는 데 성공했습니다.

그러나 현재 백업 중에 S3 관련 문제가 발생하고 있습니다. 복원 실패를 일으키는 예외는 다음과 같습니다:

[2020-07-07 17:01:29] Restoring uploads, this may take a while...
[2020-07-07 17:01:29] EXCEPTION: Some uploads could not be migrated to the new scheme. You need to fix this manually.
[2020-07-07 17:01:29] /var/www/discourse/lib/file_store/to_s3_migration.rb:155:in `migrate_to_s3'

이후 롤백 주기로 진입하며, 결국 복원이 실패했다는 메시지를 받게 됩니다.

다음 게시글들을 확인해 보았습니다:

아직 큰 진전은 없습니다.

이미지 대부분은 이미 S3에 있습니다. 문제는 디스크에 남아 있는 소수의 이미지에서 비롯된 것으로 추정됩니다. 직접 탐색해 보면 (01, 02, 03 등) 몇 개의 폴더와 그 안에 희귀하게 존재하는 이미지들을 볼 수 있습니다. v 2.6.1에서 수정되었다는 노트를 확인했기 때문에, 수정 사항을 적용하기 위해 새 서버를 해당 버전으로 업데이트해 보았지만 여전히 해결되지 않았습니다.

따라서 두 가지 구체적인 질문이 있습니다:

  1. "You need to fix this manually."라는 오류 메시지에 대해 구체적으로 무엇을 해야 합니까? 제가 모르는 특정 프로세스가 있는 건가요?
  2. 제가 잘못된 문제를 추적하고 있는 것은 아닌가요? 즉, EXCEPTION 알림이 실제로 복원 실패의 원인일 가능성이 있는 건가요?

음, 아직도 이 문제로 막혀 있네요. nginx 서버 뒤에 두고 인증서를 발급받는 방식으로 기존 서버를 다시 실행하는 데는 성공했습니다(같은 도메인으로 다른 사이트를 운영 중이거든요).

하지만 결국 마이그레이션을 진행하려고 합니다. 혹시 문제가 발생하면 서버를 복구할 수 없을 것 같아 걱정도 되네요.

추가로 도움이 될 만한 정보가 필요하시면 말씀해 주세요!

백업을 생성하기 전에 S3 업로드를 먼저 꺼보셨나요?
S3만 끄고 리베이킹을 하지 않는다면 아무 문제가 되지 않을 것입니다. 그런 다음 복원하고 S3를 다시 켜세요.

네, 그게 해결됐어요! 와! 내가 생각했던 것보다 훨씬 더 간단한 해결책이었네요.