오래전부터 업로드 마이그레이션 문제를 해결하고 싶었는데, 이제 AI 챗봇의 도움으로 마침내 해결했습니다. 관심을 가져주시는 분들을 위해 제 노트를 공유합니다! Jay의 위 게시물에는 시작하는 데 필요한 핵심 정보가 포함되어 있어 감사드립니다.
제 첫 번째 시도는 Jay가 예측한 대로 정확히 작동했습니다. 이동하려는 사이트의 이미지 URL 목록을 생성하여 새 사이트의 게시물에 붙여넣으면 이미지들이 다운로드됩니다. 이 기능이 작동하려면 Download remote images to local(원격 이미지 로컬 다운로드)이 활성화되어 있어야 합니다.
AI 챗봇이 이를 위한 스크립트를 작성해 주었는데, 후속 작업에 도움이 될 수 있도록 여기에 공유합니다.
요약
Rails 콘솔에서 다음을 실행하세요:
topic = Topic.find(=TOPIC_ID=)
posts = Post.where(topic_id: topic.id)
urls = []
posts.each do |p|
UploadReference.where(target: p).each do |ref|
urls << "=SOURCE_URL=#{ref.upload.url}"
end
end
puts urls.uniq.join("\n")
puts "\nTotal: #{urls.uniq.count} upload(s)"
전체 카테고리를 이동하려는 경우? 처음 두 줄을 다음과 같이 교체하세요:
topic_ids = Topic.where(category_id: =TOPIC_ID=).pluck(:id) posts = Post.where(topic_id: topic_ids)이 경우 =TOPIC_ID=는 Admin → Categories에서 URL 끝에 찾을 수 있는 카테고리 ID입니다.
하지만 제 경우에는 이것만으로는 충분하지 않았습니다. 자동으로 로컬에 다운로드되지 않는 PDF 파일도 있기 때문입니다.
그래서 챗봇에게 업로드를 마이그레이션하는 Python 스크립트를 작성해 달라고 요청했습니다. 꽤 잘 작동하므로 이것도 공유하고자 합니다. 직접 시도해 보거나 피드백을 남기고 싶으시다면 여기에 저장소가 있습니다.
또한 챗봇에게 주제나 카테고리를 이동하는 더 완전한 런북(runbook)도 작성해 달라고 요청했는데, 이는 제 discourse에 올라와 있습니다.