Migrate a phpBB3 forum to Discourse

2回目の試行では、uploads テーブルに既に存在するアップロードがあるため、Discourse はアップロードをスキップします。Discourse は、明示的に指示されない限り、既存のアップロードを上書きすることを避けます。

attachment_importer.rb (discourse/script/import_scripts/phpbb3/importers/attachment_importer.rb at main · discourse/discourse · GitHub) の @uploader.create_upload を呼び出す前に、以下のコードスニペットを追加すると、同じファイル名の既存のアップロードが最初に削除され、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)
「いいね!」 4