Ciao, sto migrando da AnswerHub a Discourse. Tuttavia, non avendo accesso al database di AnswerHub, ho eseguito lo scraping dell’intero sito web per raccogliere le Idee e i relativi conteggi di voti.
Come posso sovrascrivere il conteggio dei voti per una domanda specifica in Discourse? Ad esempio, la domanda “crea una nuova ricetta con le arance” ha 42 voti sul mio AnswerHub. Ho importato la domanda, ma vorrei impostare il conteggio dei voti a 42 invece che venga impostato di default a 0. In questo modo, gli utenti potranno vedere il numero esatto di voti per ogni domanda.
Esiste un modo per eseguire un comando PostgreSQL per impostare manualmente il conteggio dei voti?
Devo creare oltre 100 utenti fittizi per simulare il conteggio dei voti per ogni domanda? Spero di no, poiché non è una soluzione ideale
Non sono un esperto e non ho mai usato questo plugin
Questa è un’ottima domanda e temo di non poter rispondere con precisione, ma forse posso darti qualche indicazione dato che sembri conoscere un po’ di programmazione (dato che stai migrando da zero)
Il plugin di voto utilizza 2 tabelle:
discourse_voting_topic_vote_count
Nome campo
Tipo
Vincoli
id
serial
chiave primaria
topic_id
integer
chiave esterna (riferita a topics), può essere nullo
votes_count
integer
può essere nullo
created_at
timestamp
updated_at
timestamp
discourse_voting_votes
Nome campo
Tipo
Vincoli
id
serial
chiave primaria
topic_id
integer
chiave esterna (riferita a topics), può essere nullo
user_id
integer
chiave esterna (riferita a users), può essere nullo
archive
boolean
può essere nullo, default false
created_at
timestamp
updated_at
timestamp
Potresti essere interessato anche alle impostazioni del plugin, ma immagino tu ne sia già a conoscenza
Infine, il voto per argomento deve essere abilitato per categoria, quindi li abiliterei durante la creazione delle categorie nello script di importazione.
Per quanto riguarda come popolare correttamente i voti nell’argomento durante una migrazione, non sono un esperto, ma immagino che opterei per avere utenti casuali e unici per ogni voto, poiché un job impedisce voti multipli dallo stesso utente ed eliminerebbe i voti duplicati:
Wow, grazie per questo post fantastico e utile!
Ho deciso di optare per un approccio diverso:
Nel mio sito web originale, sono stato in grado di recuperare i dati su chi ha votato per cosa, quindi ho memorizzato tali informazioni in un database. Successivamente, ho utilizzato uno script Python con la libreria requests per esprimere voti dai loro account migrati per le idee per cui avevano già votato, e voilà!