Время исправлять это было тогда, когда вы делали импорт. Как человек, который занимается множеством миграций, я больше всего беспокоюсь о запуске форума с таким скомканным форматированием. Исправить скрипт импорта было бы довольно просто, а вот исправить это постфактум, после запуска, гораздо сложнее. Тогда это заняло бы, возможно, час или два, а сейчас работы в 2–5 раз больше.
Да, можно написать скрипт, который очистит всё на работающем форуме: либо (страшно) не сохранять правки (тогда не будет ни записи об редактировании, ни уведомлений), либо сделать правку и указать не поднимать тему/не отправлять уведомления. Я почти уверен, что делал это раньше. Вы бы сделали что-то вроде:
fixes = Post.where("raw like '%something broken%'")
fixes.each do |p|
new_raw = p.raw.gsub!(some stuff)
PostRevisor.new(p).revise!(script_user, {raw: new_raw, edit_reason: 'post fixer!'}, {bypass_bump: true)
end
Содержит ли поле raw весь этот HTML?