안녕하세요! 현재 Discourse에 있는 커뮤니티를 다른 플랫폼으로 이전할 예정입니다. 콘텐츠와 사용자를 SQL 파일로 내보내는 방법이 있을까요?
안녕하세요 ![]()
관리자 패널에서 백업만 하면 됩니다. 모든 것이 그 안에 포함되어 있습니다.
궁금한 건데, 왜 Discourse를 떠나는 건지 그 이유를 공유해 주실 의향이 있으신가요?
@Canapin 도움 주셔서 정말 감사합니다! 확인차 여쭤봅니다. 관리자 패널에서 백업 섹션을 열고, 마지막 날의 백업만 다운로드하면 되는 거죠?
네, 맞습니다. 아카이브에는 SQL 덤프와 업로드된 파일도 포함되어야 합니다.
안전을 위해 먼저 백업을 하고, 가장 최근의 백업을 다운로드할 수도 있습니다.
스크린샷을 좀 더 자세히 살펴본 결과, 데이터베이스만 포함되어 있고 업로드 파일은 없는 것 같습니다. sql.gz라는 파일명 확장자로 확인할 수 있습니다.
새로 백업을 만들 때 파일명이 .tar.gz로 끝나도록 하려면, 먼저 사이트 설정에서 업로드 포함 백업을 활성화해 보시는 것이 좋습니다.
예시:
이전 답변이 오해의 소지가 있었음을 사과드립니다!
안녕하세요, @Canapin! 잘 지내셨길 바랍니다 ![]()
불행히도 Discourse에 있는 콘텐츠를 이관하는 과정에서 문제가 발생하고 있습니다. 이전에 SQL 형식의 백업 파일을 새 도구로 전송했는데, 그들이 식별한 오류 중 하나는 다음과 같습니다:
- 누락된 첨부 파일이 상당히 많습니다. 엔지니어들이 첨부 파일을 참조하는 토픽을 처리하던 중 발견했으며, 제공해 주신 내보내기 파일에서 해당 첨부 파일을 사용할 수 없다고 합니다. 추측컨대 이러한 첨부 파일은 Discourse의 다른 위치에(예: 별도 데이터베이스) 저장되어 있는 것 같습니다. 추가적으로 찾을 수 있는 첨부 파일이 있는지 다시 확인해 주실 수 있을까요.
이 토픽에서 주신 안내에 따라 업로드를 포함하는 옵션을 선택하고 .tar 형식의 새 파일을 생성했지만, 여전히 오류가 발생했습니다(아래 이미지 참조).
백업 설정에서 “upload” 옵션을 선택했음에도 불구하고 이미지와 기타 미디어가 이관 파일에 포함되지 않는 것은 가능한 일일까요? 어떤 일이 일어나고 있을까요?
“아직 8,100개 이상의 파일이 누락된 것으로 보입니다.”
이들은 마이그레이션 이전에 이미 누락되어 있었나요?
uploads 테이블의 url 경로를 사용하여 파일의 위치를 결정해야 합니다.
그렇게 하면 이 파일들이 S3에 저장되어 있다는 것을 알게 될 것입니다. 이 파일들은 백업에 포함되지 않습니다. 가져오기 스크립트는 필요할 때 S3에서 이들을 가져올 수 있습니다(또는 S3에 그대로 두고 참조만 하도록 해도 됩니다).
질문을 좀 더 구체적으로 설명하자면, 다음과 같은 여러 상황이 있을 수 있습니다:
- 업로드된 파일이 백업 파일에 전혀 없는 경우
- 업로드된 파일 중 일부가 백업 파일에 있는 경우
- (사용 가능한) 모든 업로드 파일이 백업 파일에 있는 경우
불행히도, 이 중 어떤 경우에 해당되는지 우리가 판단할 방법은 없습니다.
rake posts:missing_uploads가 도움이 될 수 있습니다.
이 주제에 대해 이야기하고 싶지 않으실 수 있다는 점은 충분히 이해합니다. 하지만 @Canapin이 물었듯이, 저도 이사를 결정하게 된 이유에 대해 매우 궁금합니다. 다른 분들도 아마 알고 싶어 하실 겁니다.
다만 저보다 더 정중하신 분들일 뿐입니다.
감사합니다!
@supermathie @RGJ @Canapin 답변해 주셔서 감사합니다! 백업 파일을 생성하기 위해 우리가 수행한 단계를 여기에 공유하겠습니다. 구성 오류가 있다면 알려 주세요.
백업 설정:
백업 위치는 S3로 설정되어 있습니다. 이 설정이 맞나요, 아니면 다른 옵션을 선택해야 하나요? 다른 옵션은 '로컬 저장소(local storage)'로 번역됩니다. 이것이 무엇을 의미하는지 궁금합니다.
이 설정을 완료한 후, .tar 파일로 다운로드하여 다른 플랫폼 팀에 전달했습니다.
우리가 실수를 한 것일까요? 백업 설정에서 조정해야 할 부분이 있을까요? 아니면 다른 플랫폼 팀이 접근 권한이나 다른 파일이 필요한 것일까요?
질문이 많아 죄송합니다. 마이그레이션과 스크립트에 대한 기술적 지식이 많지 않습니다. Discourse에서 네이티브로 내보내는 것이 쉬울 것이라고 생각했습니다.
안녕하세요, @Mevo! 주요 이유는 사용자 인터페이스와 경험입니다.
커뮤니티가 성장하면서 더 사용자 친화적이고 직관적인 플랫폼이 필요했습니다.
또한 사용자 참여율 문제도 있었습니다: 게임화, 이메일 캠페인 및 기타 기능을 도입했습니다.
감사합니다! 그리고 어디로 이사하기로 하셨나요?
백업 파일에는 아무 문제가 없습니다.
백업 파일에서 파일을 찾으려 하지 말고, uploads 테이블의 url 컬럼을 검사하여 S3 버킷에서 파일을 찾도록 "다른 플랫폼 팀"에게 지시하면 됩니다.
내보내는 것은 쉽지만, 다른 시스템으로 가져오는 것은 쉽지 않습니다…
백업에 S3 파일을 포함하려면 include_s3_uploads_in_backups를 활성화해야 합니다.
기본적으로 이 설정은 꺼져 있습니다. S3에서 모든 업로드 파일을 다운로드하여 타르볼(tarball)로 패키징한 뒤 다시 업로드하는 과정은 매우 시간이 많이 걸리고 비용이 많이 들 수 있기 때문입니다.
@supermathie @RGJ @Canapin 안녕하세요! 잘 지내고 계신가요? 이미지 마이그레이션과 관련하여 여전히 문제가 있습니다. 아래는 현재 백업 설정의 스크린샷과 Insided 플랫폼 팀의 답변입니다:
그들의 엔지니어가 남긴 추가 메모는 다음과 같습니다:
-
05/17에 제공하신 파일(.tar 형식)에는 파일 자체가 포함되어 있지 않습니다.
-
예를 들어, url 컬럼에는 /uploads/db0693/original/2X/9/9fedfd520d43a0e03281fc4a6e636ad2116a99a3.gif이라는 값이 있습니다. 그들은 제공된 데이터에서 해당 경로를 따라(uploads/db0693/etc) 파일을 찾을 수 있습니다. 따라서 이 파일은 Missing-Files.txt 문서에 포함되어 있지 않습니다.
-
다른 항목에는 url://upload-forum-blip.s3.dualstack.us-east-1.amazonaws.com/uploads/db0693/original/2X/d/da4a7824e7a48d73c0cb8724225e5dddc111ed63.jpeg가 있습니다. 여기서는 데이터 덤프의 경로를 따라(uploads/db0693/etc) 물리적 파일을 찾으려고 시도했지만, 이 파일은 제공된 파일에 포함되어 있지 않으므로 목록에 포함되어 있습니다.
-
링크하신 커뮤니티 스레드의 답변을 바탕으로, 백업 내보내기 시 받는 파일 외에도 s3 버킷(upload-forum-blip.s3.dualstack.us-east-1.amazonaws.com)에 접속하여 upload 폴더(및 하위 폴더)를 수동으로 다운로드해야 할 것으로 추정됩니다.
이 메모가 타당해 보이나요? 지원 팀의 누군가가 이 파일들을 내보내기 위해 저에게 연락할 수 있을까요?
감사합니다!
즉, 이 파일은 그들이 발견한 URL(여기)에 단순히 위치해 있다는 뜻인가요?
정말 이 엔지니어들이 a) 가져오기 스크립트 내에서 파일을 다운로드하거나, b) S3browser나 Cyberduck 같은 도구를 사용하여 해당 파일을 다운로드하는 것이 불가능하다고 말씀하시는 건가요?
Communiteq에서 호스팅을 받고 있는 것 같습니다. 일반적으로 고객님이 직접 관리하는 S3 버킷은 피하지만, 이번에는 마무리를 짓겠습니다. Communiteq 지원에 티켓을 열어 권한이 기록되도록 하시면, 해당 파일의 다운로드를 받을 수 있도록 하겠습니다.
하지만 이런 "지원"을 받고 있다면, 그곳으로 이주하는 것을 다시 한번 신중하게 고려해 보시는 것이 좋습니다.
권장대로 include_s3_uploads_in_backups를 활성화하셨나요?
또한, S3 자격 증명은 바로 그곳에 있으며 파일을 다운로드하는 데 사용할 수 있습니다.







