Importei todo o meu conteúdo, mas quero que a data do tópico de cada novo tópico seja alterada como se tivesse sido postada a partir da data de hoje, não há posts adicionais por tópico.
É "Alterar carimbo de data/hora" no menu da chave inglesa do tópico:
A caixa de diálogo que aparece explica:
Selecione o novo carimbo de data/hora do tópico. As postagens no tópico serão atualizadas para ter a mesma diferença de tempo.
Para constar, eu estava usando a API e não me lembrei de definir created_at para a data real da postagem.
Éééé, eu preciso fazer isso para mais de 3.000 posts, no entanto
Parece um trabalho para a API: updateTopicTimestamp.
Você pode fazer isso no Rails. Acho que pode haver um exemplo em algum lugar se você procurar. Aqui está um começo.
Topic.update_all(created_at: Time.now()
Mas eu faria alguns testes. Por exemplo, você também vai querer atualizar os posts?
Não há posts, apenas 1 tópico/post de abertura nesse tópico, o comando que você deu funcionaria de imediato?
A caixa de diálogo para alterar o carimbo de data/hora do tópico diz:
Por favor, selecione o novo carimbo de data/hora do tópico. As postagens no tópico serão atualizadas para ter a mesma diferença de tempo.
Se você alterar a data do tópico, ele corrige automaticamente todas as respostas para que fiquem corretas em relação à nova data. Portanto, se um tópico foi originalmente datado em 1º de janeiro e uma resposta em 5 de janeiro, alterar a data do tópico para 2 de janeiro também atualizará a resposta para 6 de janeiro. Fácil!
Por curiosidade, por que você gostaria que todos os mais de 3.000 tópicos tivessem a mesma data?
Mas, deixando a curiosidade de lado, você deve ser capaz de fazer isso com a API ou com o console do Rails, se você se sentir confortável em usá-lo (é uma boa prática fazer um backup primeiro, apenas por precaução).
Há algumas informações sobre como obter a API relevante para coisas neste tópico - Reverse engineer the Discourse API
E existem alguns exemplos de diferentes técnicas do Rails em Administrative Bulk Operations que você pode usar para construir o que precisa (ou ter uma ideia do que procurar).
Apenas reabrindo este tópico, ainda preciso de suporte adicional, por favor
Tentei isso, não parece fazer nenhuma alteração, mas também não gera erros.
Para seguir a sugestão do Jon, esta é a versão do console Rails.
cd /var/discourse
./launcher enter app
rails c
Em seguida, para um tópico específico:
TopicTimestampChanger.new(topic: Topic.with_deleted.find(TOPIC_ID), timestamp: Time.now()).change!
Para todos os tópicos sem condições:
Topic.find_each do |topic|
TopicTimestampChanger.new(topic: topic, timestamp: Time.now()).change!
end
Você também pode querer alterar updated_at.
