Como excluir TUDO do meu fórum e deixar apenas os usuários?

Essa é, de longe, a maneira mais rápida e fácil.
Baixe sua lista de usuários como @JammyDodger sugeriu, de /admin/users/list/active, baixe o arquivo CSV, limpe-o para manter apenas os endereços de e-mail e faça um convite em massa da sua interface de administrador a partir de uma nova instalação do Discourse. Seus usuários terão que criar uma conta novamente.

Se você quiser excluir todos os dados, exceto alguns usuários, não há uma maneira fácil de fazer isso e só consigo pensar que tentar isso pode facilmente levar a um fórum quebrado.

Se você quiser exportar a maior parte dos dados de seus usuários (suas próprias configurações e coisas), também será difícil e exigirá a criação de um script ruby on rails. Além disso, você pode enfrentar problemas que eu não pensei. Se você não tem certeza de como fazer isso, sugiro que você siga a primeira solução ou poste em Marketplace se tiver um orçamento.

1 curtida

Isso é verdade. Mas se você quiser viver perigosamente, pode tentar o seguinte:

./launcher enter app
discourse backup
rails c
Topic.where("user_id > 1").destroy_all
Upload.where("user_id > 1").destroy_all
exit
exit

Acho que excluir tópicos deve excluir postagens, mas você também pode adicionar um

 Post.where("user_id > 0").destroy_all

O > 1 deixará os tópicos criados pelo primeiro usuário. Se você também quiser excluí-los, altere para > 0, o que deixará os tópicos criados pelo @system. Acho que você vai se arrepender muito se excluir esses.

Isso faz um backup caso destrua tudo.

Isso é quase certamente uma má ideia, mas é o que você pediu.

1 curtida

De fato! Existe a classe PostDestroyer para isso, que faz muita limpeza extra necessária.

@xebiyen você pode usar esta tarefa rake para destruir todos os tópicos em todas as categorias, mas deixar as categorias e os usuários intactos:

$ ./bin/rake destroy:topics_all_categories
4 curtidas

Incrível, eu não sabia dessa tarefa do rake. Ela removerá os tópicos “Sobre”, o que seria um efeito colateral indesejado?

Não, o método que ele usa deixa esses de lado por padrão, e a tarefa do rake não muda esse padrão:

:rainbow:

1 curtida

Obrigado por confirmar isso. Eu queria ter certeza, porque um ou dois dos métodos recomendados para outras coisas listados em Administrative Bulk Operations tiveram efeitos colaterais indesejados da última vez que os usei.

Usei um para mover tópicos de uma categoria para outra, mas ele moveu o tópico “about” junto com os tópicos regulares. Posso ter usado um script Rails em vez da tarefa Rake, no entanto. Não tenho certeza. :thinking:

Também usei o método Rake “mover todos os tópicos com uma tag específica para uma única categoria”, que não preencheu corretamente algumas tabelas relacionadas a tags no banco de dados.


editar: ah, é meu Cake Day! Se ao menos o bolo fosse real… Mas talvez seja, afinal?

2 curtidas

Obrigado! Eu tinha me esquecido dessa classe e não sabia da tarefa do rake (ou não me lembro de ter esquecido!).

2 curtidas

Qual comando devo usar antes deste comando?

@pfaffman @Canapin o comando dele @leonardo é a melhor solução então?

Você pode tentar sozinho, mas faça um backup primeiro.
Vá para a sua pasta do discourse na linha de comando.
Entre no container com ./launcher enter app.
Em seguida, digite rake destroy:topics_all_categories.

Veja em ação (minha instância de teste é muito lenta):

4 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.