Importation des votes : Est-il possible d'utiliser une commande PostgreSQL ou autre pour définir les décomptes de votes sur des sujets spécifiques ?

Bonjour, je suis en train de migrer d’AnswerHub vers Discourse. Cependant, comme je n’ai pas accès à la base de données d’AnswerHub, j’ai récupéré l’intégralité du site web pour collecter les idées et leurs décomptes de votes respectifs.

Comment puis-je remplacer le décompte de votes pour une question spécifique dans Discourse ? Par exemple, la question « faire une nouvelle recette avec des oranges » a 42 votes sur mon AnswerHub. J’ai importé la question, mais j’aimerais définir le décompte de votes à 42 au lieu de la valeur par défaut de 0. Ainsi, les utilisateurs pourront voir le nombre exact de votes pour chaque question.

Existe-t-il un moyen d’exécuter une commande PostgreSQL pour définir manuellement le décompte de votes ?
Dois-je créer plus de 100 utilisateurs fictifs pour simuler le décompte de votes pour chaque question ? J’espère que non, car ce n’est pas une solution idéale :stuck_out_tongue:

Merci d’avance pour votre aide.

:slight_smile:

1 « J'aime »

Salut Luicid !

:warning: Je ne suis pas un expert et je n’ai jamais utilisé ce plugin :upside_down_face:

C’est une excellente question et je crains de ne pas pouvoir y répondre précisément, mais je peux peut-être te donner quelques pistes car tu sembles t’y connaître un peu en codage (puisque tu migres à partir de zéro).

Le plugin de vote utilise 2 tables :

discourse_voting_topic_vote_count

Nom du champ Type Contraintes
id serial clé primaire
topic_id integer clé étrangère (référence les topics), peut être null
votes_count integer peut être null
created_at timestamp
updated_at timestamp

discourse_voting_votes

Nom du champ Type Contraintes
id serial clé primaire
topic_id integer clé étrangère (référence les topics), peut être null
user_id integer clé étrangère (référence les utilisateurs), peut être null
archive boolean peut être null, par défaut false
created_at timestamp
updated_at timestamp

Tu pourrais aussi être intéressé par les paramètres du plugin, mais je suppose que tu les connais déjà :slight_smile:

Enfin, le vote de topic doit être activé par catégorie, donc je les activerais lors de la création des catégories dans le script d’importation.

Quant à la manière de bien peupler les votes dans le topic lors d’une migration, je ne suis pas un expert, mais je suppose que j’opterais pour des utilisateurs aléatoires et uniques pour chaque vote, car un job empêche les votes multiples du même utilisateur et supprimerait les votes dupliqués :

https://github.com/discourse/discourse-topic-voting/blob/main/app/jobs/onceoff/voting_ensure_consistency.rb#L28

Je remplirais les champs nécessaires (à déterminer) et laisserais les jobs remplir les autres champs s’il y en a.

Tu voudras peut-être aussi jeter un œil à tous les jobs du plugin discourse-topic-voting/app/jobs at main · discourse/discourse-topic-voting · GitHub

J’espère que cela t’aide un peu et que tu partageras comment les choses se passent :slight_smile:

1 « J'aime »

Wow, merci pour ce post génial et utile ! :slight_smile:
J’ai décidé d’opter pour une approche différente :

Dans mon site web d’origine, j’ai pu récupérer les données sur qui a voté pour quoi, j’ai donc stocké ces informations dans une base de données. Plus tard, j’ai utilisé un script Python avec la bibliothèque requests pour voter à partir de leurs comptes migrés pour les idées pour lesquelles ils avaient déjà voté, et voilà !

Merci encore

1 « J'aime »