Importieren von Stimmen: Ist es möglich, einen PostgreSQL-Befehl oder einen anderen zu verwenden, um Stimmenzählungen für bestimmte Themen festzulegen?

Hallo, ich bin dabei, von AnswerHub zu Discourse zu migrieren. Da ich jedoch keinen Zugriff auf die AnswerHub-Datenbank habe, habe ich die gesamte Website durchsucht, um die Ideen und ihre jeweiligen Stimmenzahlen zu sammeln.

Wie kann ich die Stimmenzahl für eine bestimmte Frage in Discourse überschreiben? Zum Beispiel hat die Frage „make a new recipe with oranges“ 42 Stimmen auf meinem AnswerHub. Ich habe die Frage importiert, möchte aber die Stimmenzahl auf 42 setzen, anstatt dass sie standardmäßig auf 0 gesetzt wird. Auf diese Weise können die Benutzer die genaue Anzahl der Stimmen für jede Frage sehen.

Gibt es eine Möglichkeit, einen PostgreSQL-Befehl auszuführen, um die Stimmenzahl manuell festzulegen?
Muss ich 100+ Fake-Benutzer erstellen, um die Stimmenzahl für jede Frage zu simulieren? Ich hoffe nicht, da das keine ideale Lösung ist :stuck_out_tongue:

Vielen Dank im Voraus für Ihre Hilfe.

:slight_smile:

1 „Gefällt mir“

Hallo Luicid!

:warning: Ich bin kein Experte und habe dieses Plugin noch nie benutzt :upside_down_face:

Das ist eine tolle Frage und ich fürchte, ich kann sie nicht genau beantworten, aber vielleicht kann ich dir ein paar Hinweise geben, da du dich anscheinend ein wenig mit dem Programmieren auskennst (da du von Grund auf migrierst).

Das Abstimmungs-Plugin verwendet 2 Tabellen:

discourse_voting_topic_vote_count

Feldname Typ Einschränkungen
id serial Primärschlüssel
topic_id integer Fremdschlüssel (verweist auf topics), kann NULL sein
votes_count integer kann NULL sein
created_at timestamp
updated_at timestamp

discourse_voting_votes

Feldname Typ Einschränkungen
id serial Primärschlüssel
topic_id integer Fremdschlüssel (verweist auf topics), kann NULL sein
user_id integer Fremdschlüssel (verweist auf users), kann NULL sein
archive boolean kann NULL sein, Standard false
created_at timestamp
updated_at timestamp

Vielleicht interessieren dich auch die Einstellungen des Plugins, aber ich schätze, die kennst du schon :slight_smile:

Schließlich muss die Abstimmung über Themen pro Kategorie aktiviert werden. Ich würde sie also während der Erstellung der Kategorien im Import-Skript aktivieren.

Was die richtige Befüllung der Stimmen im Thema während einer Migration betrifft, bin ich kein Experte, aber ich schätze, ich würde zufällige, eindeutige Benutzer für jede Stimme verwenden, da ein Job verhindert, dass derselbe Benutzer mehrmals abstimmt und doppelte Stimmen löscht:

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

Ich werde die notwendigen Felder (noch zu bestimmen) befüllen und die Jobs die anderen Felder ausfüllen lassen, falls es so etwas gibt.

Vielleicht möchtest du dir auch alle Plugin-Jobs ansehen: discourse-topic-voting/app/jobs at main · discourse/discourse-topic-voting · GitHub

Ich hoffe, das hilft ein wenig und du teilst mit, wie es weitergeht :slight_smile:

1 „Gefällt mir“

Wow, danke für diesen tollen und hilfreichen Beitrag! :slight_smile:
Ich habe mich für einen anderen Ansatz entschieden:

Auf meiner ursprünglichen Website konnte ich die Daten darüber abrufen, wer für was gestimmt hat, also habe ich diese Informationen in einer Datenbank gespeichert. Später habe ich ein Python-Skript mit der Requests-Bibliothek verwendet, um Stimmen von ihren migrierten Konten für die Ideen abzugeben, für die sie bereits gestimmt hatten, und voilà!

Nochmals vielen Dank

1 „Gefällt mir“