O Discourse tem uma ferramenta de limpeza de banco de dados?
Essa ferramenta removeria quaisquer dados de configuração extras do banco de dados. A ferramenta removeria quaisquer colunas adicionadas, linhas de configuração e tabelas do banco de dados que não estão presentes na instalação padrão do Discourse. A ferramenta deixaria todo o conteúdo e configurações do site inalterados. O foco principal seria remover todos os componentes de plugin e tema do banco de dados.
A melhor solução que consigo pensar é configurar uma nova instância a partir de um backup
Essa é a forma mais limpa de conseguir isso mantendo os dados do seu fórum sem muito esforço manual.
No entanto, acredito que os backups incluirão todas as tabelas que existiam na instância da qual você fez o backup e isso pode incluir qualquer uma criada por plugins, mesmo que você não tenha instalado o plugin na nova instância.
Se você quiser colocar a mão na massa, pode usar as tarefas do rake para excluir um banco de dados e criar um novo e executar todas as migrações, mas isso excluirá todos os seus dados.
É por isso que “instalar um novo ambiente e restaurar um backup” não é a melhor solução. Você ainda tem sobras de componentes e plugins antigos pendurados no banco de dados.
Deveria haver uma ferramenta de último recurso que remova quaisquer alterações de componentes e plugins no banco de dados, deixando os dados e as configurações do site intocados. Essa ferramenta poderia ser executada antes de se recorrer à nova solução de instalação.
Você está usando o termo “migrations”. O que você quer dizer com este termo?
Eu uso o termo para me referir à “migração” de dados e conteúdo do usuário para um sistema. Isso nunca deve alterar a estrutura padrão do banco de dados.
A única coisa que pode alterar a estrutura de um banco de dados é um plugin. A menos que o Discourse esteja permitindo outras maneiras para as pessoas alterarem a estrutura do banco de dados.