Há alguns meses instalei o Discourse, adicionei alguns tópicos como Tópico de Índice na seção Modo de Documentação. Tudo funcionou como esperado.
Fiz backup de tudo, excluí a conta do Digital Ocean, etc.
Alguns dias atrás, instalei o Discourse novamente e restaurei tudo do arquivo de backup que criei, e tudo está funcionando, exceto pelas seções de Documentação. A princípio, pensei que o problema fosse que eu havia deslistado esses tópicos de índice, mas eles estavam deslistados antes de eu desinstalar tudo e estavam funcionando, então esse não poderia ser o problema. Ainda assim, tentei listá-los, mas sem sucesso. A barra lateral ainda mostrava as categorias e todo o outro conteúdo que é o padrão.
Então, decidi copiar o conteúdo do tópico original e criar um novo tópico com ele, configurá-lo como Tópico de Índice, e esse funciona. Também o fechei e deslistei como o que não está funcionando, então fechar e deslistar não é o problema.
Parece que no processo de restauração, algo está quebrando o modo de documentação por algum motivo.
Obrigado pelo link.
Como ainda estou construindo toda a estrutura, acabei criando um novo tópico, copiando e colando o conteúdo do antigo e excluindo o tópico antigo. Eu só tinha 2 desses, de qualquer forma.
Então, minha pergunta é: essa rake task é algo que preciso fazer toda vez que atualizo o Discourse? Ou apenas quando faço um restore (se eu fizer isso novamente no futuro)?
Não, aquela tarefa rake é apenas algo pontual da data daquela postagem citada.
Você não deve precisar recriar o tópico, apenas ir nas configurações da categoria, desvincular, salvar e vincular novamente o tópico existente pelo menos deve funcionar.
Pelo que me lembro naquela época — Não poderia ser uma migração. Migrações idealmente não tocam no código da aplicação (porque o código pode divergir do momento em que a migração é pretendida e falhar).
Este PR também inclui uma tarefa rake (doc_categories.rake) para reconstruir seções e links da barra lateral a partir de tópicos de índice de documentos ativos – isso não é exatamente recomendado fazer em uma migração, pois envolveria o uso do parser ou do nokogiri (cujas implementações podem divergir e causar uma migração inválida).
Então, se entendi corretamente, a partir de agora, eu não preciso fazer nada disso? A tarefa rake ou o processo de religamento, sempre que eu atualizar o Discourse?