En tu segunda prueba, Discourse omite las cargas porque ya existen en la tabla uploads. Discourse evita sobrescribir las cargas existentes a menos que se le indique explícitamente.
Puedes intentar agregar el siguiente fragmento de código en attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) antes de llamar a @uploader.create_upload para asegurarte de que cualquier carga existente con el mismo nombre de archivo se elimine primero, lo que obligará a Discourse a volver a cargarla.
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)