Ho importato tutti i miei contenuti, ma voglio che la data dell’argomento di ciascun nuovo argomento cambi come se fosse stato pubblicato dalla data odierna, non ci sono post aggiuntivi per argomento
È “Change Timestamp” nel menu della chiave inglese dell’argomento:
La finestra di dialogo che appare spiega:
Seleziona il nuovo timestamp dell’argomento. I post nell’argomento verranno aggiornati per avere la stessa differenza di tempo.
Per quello che vale, stavo usando l’API e non mi ricordavo di impostare created_at alla data effettiva del post.
Sììì, devo farlo per oltre 3.000 post, però
Sembra un lavoro per l’API: updateTopicTimestamp.
Puoi farlo in Rails. Penso che ci possa essere un esempio da qualche parte se cerchi. Ecco un inizio.
Topic.update_all(created_at: Time.now()
Ma farei dei test. Ad esempio, vorrai anche aggiornare i post?
Non ci sono post, solo 1 argomento/post di apertura in quell’argomento, il comando che hai fornito funzionerebbe subito?
La finestra di dialogo per la modifica del timestamp dell’argomento dice:
\u003e Seleziona il nuovo timestamp dell’argomento. I post nell’argomento verranno aggiornati per avere la stessa differenza di tempo.
Se cambi la data dell’argomento, corregge automaticamente tutte le risposte affinché siano corrette rispetto alla nuova data. Quindi, se un argomento era originariamente datato 1 gennaio e una risposta 5 gennaio, cambiare la data dell’argomento al 2 gennaio aggiornerà anche la risposta al 6 gennaio. Facile!
Per curiosità, perché vorresti che tutti gli oltre 3.000 argomenti avessero la stessa data?
Ma, curiosità a parte, dovresti essere in grado di farlo con l’API o con la console di Rails, se ti senti a tuo agio nell’usarla (è buona norma fare prima un backup, non si sa mai).
Ci sono alcune informazioni su come ottenere l’API pertinente per le cose in questo argomento - Reverse engineer the Discourse API
E ci sono alcuni esempi di diverse tecniche di Rails in Administrative Bulk Operations che potresti usare per costruire ciò di cui hai bisogno (o darti un’idea di cosa cercare).
Sto solo riproponendo questo, ho ancora bisogno di ulteriore supporto, per favore
Ho provato questo, non sembra apportare alcuna modifica ma non genera nemmeno errori.
Per seguire il suggerimento di Jon, questa è la versione della console Rails.
cd /var/discourse
./launcher enter app
rails c
Quindi, per un argomento specifico:
TopicTimestampChanger.new(topic: Topic.with_deleted.find(TOPIC_ID), timestamp: Time.now()).change!
Per tutti gli argomenti senza condizioni:
Topic.find_each do |topic|
TopicTimestampChanger.new(topic: topic, timestamp: Time.now()).change!
end
Potresti anche voler cambiare updated_at.
