Postagens pré-seedadas todas ausentes - Termos de Serviço, FAQ e páginas de Privacidade em falta

Olá novamente — de forma amadora, tentei a seguinte consulta no Data Explorer, mas não obtive resultados relevantes para mensagens excluídas na categoria Staff:

SELECT *
FROM topics
WHERE deleted_at is not NULL
AND category_id = 3 

Ou mesmo em qualquer categoria:

SELECT *
FROM topics
WHERE deleted_at is not NULL

Então, estou me perguntando se há algo mais acontecendo, caso os tópicos não tenham sido realmente excluídos. Existe outra maneira de detectar esses tópicos ausentes? Ou as postagens do sistema talvez não sejam armazenadas na tabela topics de forma alguma?

Bom ver suas habilidades com o Data Explorer!
Esses tópicos definitivamente estão na tabela de tópicos.

Tente o seguinte:

SELECT id, title, deleted_at
FROM topics
Order by id
Limit 10

Você deve obter algo assim:

PS: Você também pode precisar alterar deleted_by_id.

Olá @Paul_King, você já tentou isso?

Obrigado, Nathan — uma ótima sugestão.
No entanto, o menor ID de tópico encontrado entre os tópicos excluídos é 20

Você tem algum dos itens de 1 a 10? Parece que não.

Pode ser que reconstruir o site do zero e depois mesclar os bancos de dados de alguma forma seja o caminho a seguir. Ou então, mãos à obra com o PostgreSQL!

Olá, Nathan — isso definitivamente lista vários tópicos excluídos, mas nenhum dos pré-semeados que estão faltando na categoria de equipe.

Estou me perguntando se consigo realmente manipular o banco de dados para cancelar exclusões, caso não haja nenhum indício de que os posts pré-seedados perdidos tenham existido alguma vez. Existe alguma maneira de rodar novamente o assistente de configuração em uma instalação existente, para forçar a criação desses posts pré-seedados? Houve alguma forma de o assistente de configuração ter omitido eles na primeira vez? (talvez houvesse uma opção onde eu cliquei em ‘pular’ na primeira rodada?)

Será que pode ter havido um bug na versão do Discourse que estava sendo usada no momento em que configurei?

É possível que, se os posts pré-seedados perdidos nem estiverem marcados como excluídos, mas simplesmente não existirem, as ausências não se propaguem ou sobrescrevam nada se eu restaurar um banco de dados de backup em uma instalação nova do Discourse? Ou o caso é que o banco de dados inicial é removido por completo e substituído pelo backup, com todos os seus defeitos?

Outra coisa para tentar é selecionar tos_topic_id, guidelines_topic_id e privacy_topic_id da tabela site_settings.

Desculpe, com este SQL:

SELECT value
FROM site_settings
WHERE name = 'tos_topic_id'

Obrigado, Kane.

Pode ser que eu esteja fazendo isso errado, mas para mim:
SELECT tos_topic_id, site_settings

ou (não tenho certeza qual está correta, se alguma)

SELECT tos_topic_id
FROM
site_settings

retorna
PG::UndefinedColumn: ERROR: coluna “tos_topic_id” não existe
LINHA 7: SELECT tos_topic_id, site_settings

O que interpreto como significando que não há um ‘tos_topic_id’?

Resultado similar para guidelines_topic_id e privacy_topic_id

Isso pode ajudar: How to regenerate FAQ and TOS pages?

Obrigado!! Isso é exatamente o que eu estava procurando — embora, infelizmente para mim, o comando final
rake topics:update_static[en]
retorne um erro — não tenho certeza do motivo ou de como lidar com isso.

Qual é o erro? (Sempre é uma boa ideia postar o erro se quiser ajuda. :wink:)

@Paul_King Eu também encontrei um erro ao executar update_static, mas minha página de FAQ voltou!
@gerhard O erro é o seguinte e acho que é o mesmo para o Paul.

[5] pry(main)> rake topics:update_static[zh_CN]
NameError: variável local ou método `update_static' não definido para main:Object

Você estava executando a tarefa rake no console do Rails, o que não funciona. Mas, ao executá-la corretamente, você notará que a tarefa rake não existe mais. :wink:

Em vez disso, recomendo usar o método de “Atualização Manual” descrito em Atualizar categorias e tópicos pré-semeados. Editei os passos em How to regenerate FAQ and TOS pages? - #2 by gerhard de acordo.

Existe alguma maneira de fazer os links de Termos de Uso e Privacidade no diálogo de cadastro funcionarem? Nada do que foi mencionado acima parece ter funcionado para mim, embora eu consiga recriar tópicos de Termos de Uso e Privacidade que não estão vinculados.

Não tenho certeza de como esses tópicos desapareceram inicialmente. Apenas assumi que devo tê-los excluído acidentalmente ao perceber que estavam faltando, mas, pelo que li, isso nem deveria ser possível na interface do usuário. E, como outros parecem ter enfrentado um problema semelhante, isso poderia envolver algum possível bug?

Não tenho certeza de como as coisas ficaram para você no final, Paul, mas agora você pode criar suas próprias páginas de Termos de Serviço e Privacidade usando isto:

https://meta.discourse.org/t/page-publishing/151971/31

Incrível! Obrigado pelo aviso, Nathan.

Confirmo que isso resolveu o problema!

Você também precisa copiar e colar os URLs gerados para as postagens publicadas nos campos correspondentes em Configurações/Legal, como se fossem páginas de Termos de Uso e Política de Privacidade “hospedadas externamente”, se quiser que os links para elas na nova janela de cadastro funcionem. (Não tenho certeza do motivo pelo qual a FAQ é omitida da janela de cadastro, mas você também pode definir esse URL aqui — embora não saiba qual é o propósito desse campo ou para onde ele leva, caso não esteja incluído na janela de cadastro?)

É uma solução alternativa que pode falhar se o site algum dia mudar de URL, mas é ótima por enquanto para permitir que as pessoas vejam, pelo menos, quais são os termos de uso etc. antes de se cadastrarem!