Bei Ihrem zweiten Versuch überspringt Discourse die Uploads, da sie bereits in der uploads-Tabelle vorhanden sind. Discourse überschreibt vorhandene Uploads nur, wenn dies ausdrücklich angewiesen wird.
Sie können versuchen, den folgenden Code-Schnipsel in attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) einzufügen, bevor Sie @uploader.create_upload aufrufen. Dies stellt sicher, dass jeder vorhandene Upload mit demselben Dateinamen zuerst gelöscht wird, wodurch Discourse gezwungen wird, ihn erneut hochzuladen.
existing_upload = Upload.find_by(original_filename: filename)
if existing_upload
existing_upload.destroy
puts "Vorhandener Upload gelöscht: #{filename}"
end
upload = @uploader.create_upload(user_id, path, filename)