Nosso site Discourse para usuários do ensino médio tem sido muito bem-sucedido. Demasiado bem-sucedido. Tivemos 2,3 milhões de postagens e 2,9 milhões de curtidas nos últimos 2 anos, desde que começamos em janeiro de 2021.
Gostaríamos de organizar um pouco o local, para economizar custos e também para reduzir riscos de longo prazo de hackers ou similares. Começar do zero seria doloroso, mas a descoberta de adicionar /print ao final de um URL de tópico para criar páginas com 1000 comentários para um PDF ajuda. Não conseguimos encontrar (e duvido muito) a existência de uma maneira limpa de remover, digamos, o ano mais antigo de tópicos.
Alguma ideia? Precisamos começar do zero ou existem outras opções?
Olá! Fico feliz em saber que o Discourse funcionou muito bem para o seu projeto
Só para ter certeza de que entendi; seu critério para tornar um tópico elegível para exclusão seria apenas a sua idade?
Não há um recurso embutido na interface que permita isso, mas você poderia criar e acionar manualmente um script Rails que excluiria tópicos mais antigos que uma determinada data.
O conteúdo das citações permaneceria.
Quanto a links internos para um tópico excluído, eles levariam a uma página de “não encontrado”.
Sim, os uploads serão excluídos após 2 dias por padrão (a menos que sejam usados em outro lugar, como dentro de uma citação em outro tópico), veja a configuração clean orphan uploads grace period hours (período de carência para limpeza de uploads órfãos em horas).
Mas observe que tópicos e posts são soft-deleted. Eles ficam ocultos, mas ainda armazenados no banco de dados.
Acrescento que estou perto, mas não 100% certo do que estou dizendo… É melhor esperar por um usuário mais experiente para responder aqui.
Uma coisa que você pode fazer daqui para frente é ativar o chat, que eu imagino que seja a maior parte do que está acontecendo, especialmente se você quiser excluí-lo. Dessa forma, as coisas são podadas automaticamente (acho que o padrão é 90 dias, o que provavelmente é suficiente).
E NENHUM do material antigo é importante? E se for, como você vai guardar o que é bom? Por categoria?
Parece que Topic.destroy chama o PostDestroyer, então acho que destruir esses tópicos deve fazer o que você quer.
Eu recomendo que você configure um site de teste para fazer alguns testes antes de fazer isso no seu servidor de produção.
Eu poderia até criar um conjunto de sites do Discourse, talvez um por turma de formatura, para que você pudesse simplesmente desativá-los quando fosse a hora. Você também poderia ter um separado para coisas de toda a escola e fazê-los compartilhar um servidor de autenticação (seja o Discourse de toda a escola ou, esperançosamente, qualquer servidor de autenticação que sua escola/distrito use). Ah, ou talvez isso seja para alunos do ensino médio, mas não para uma escola. Então essa reorganização pode não fazer sentido.