Ativar a opção “limpar uploads” parece assustador com a mensagem de aviso. Ao converter um fórum existente para o Discourse, essa configuração será desativada. Nem todos os scripts de importação registrarão corretamente todos os uploads nas postagens, portanto, se você ativá-la, poderá perder muitos anexos.
Com a seguinte consulta, você pode verificar se os uploads estão devidamente referenciados pelas postagens:
select p.post_id, u.id as upload_id
from (select id post_id, (regexp_matches(cooked, 'data-download-href=[^\\s]+/default/([a-z0-9]+)', 'g'))[1] upload_sha from posts where raw like '%upload://%' order by created_at) as p
join uploads u on u.sha1 = p.upload_sha
where not exists(select * from upload_references r where r.upload_id = u.id)
Isso não deve retornar nenhuma linha se tudo estiver correto. Se você usar esta consulta no plugin Data Explorer, ela também vinculará de forma organizada as postagens que possuem anexos não referenciados.
Se a consulta acima retornar resultados, você poderá corrigir as referências de upload ausentes com a seguinte consulta:
insert into upload_references(upload_id, target_type, target_id, created_at, updated_at)
select u.id, 'Post', p.post_id, u.created_at, u.updated_at
from (select id post_id, (regexp_matches(cooked, 'data-download-href=[^\\s]+/default/([a-z0-9]+)', 'g'))[1] upload_sha from posts where raw like '%upload://%' order by created_at) as p
join uploads u on u.sha1 = p.upload_sha
on conflict do nothing;
Você precisará de acesso direto ao banco de dados para fazer a alteração corretiva.