두 번째 시도에서 Discourse는 이미 uploads 테이블에 존재하는 업로드를 건너뛰고 있습니다. 명시적으로 지시하지 않는 한 Discourse는 기존 업로드를 덮어쓰지 않습니다.
@uploader.create_upload를 호출하기 전에 attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub)에 아래 코드 스니펫을 추가하면, 동일한 파일명을 가진 기존 업로드가 먼저 삭제되어 Discourse가 해당 파일을 다시 업로드하도록 강제할 수 있습니다.
existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
existing_upload.destroy
puts "Deleted existing upload: #{filename}"
end
upload = @uploader.create_upload(user_id, path, filename)