Luicid
(Luicid)
2023 年 6 月 1 日午後 2:41
1
こんにちは。AnswerHubからDiscourseへの移行を進めています。AnswerHubのデータベースにアクセスできないため、ウェブサイト全体をスクレイピングして、アイデアとその投票数を収集しました。
Discourseで特定の質問の投票数を上書きするにはどうすればよいですか?たとえば、「make a new recipe with oranges」という質問は、AnswerHubで42票ありました。質問はインポートしましたが、デフォルトの0ではなく、投票数を42に設定したいと思います。これにより、ユーザーは各質問の正確な投票数を確認できます。
投票数を手動で設定するためにPostgreSQLコマンドを実行する方法はありますか?
質問ごとに投票数をシミュレートするために100人以上の偽のユーザーを作成する必要がありますか?それは理想的な解決策ではないので、そうではないことを願っています
よろしくお願いします。
「いいね!」 1
Canapin
(Coin-coin le Canapin)
2023 年 6 月 2 日午前 10:09
2
こんにちは、Luicidさん!
私は専門家ではなく、このプラグインを使ったこともありません
これは素晴らしい質問ですが、正確にお答えすることはできません。しかし、コーディングについて少しご存知のようですので(ゼロから移行されているとのことなので)、いくつかヒントを提供できるかもしれません。
投票プラグインは2つのテーブルを使用します。
discourse_voting_topic_vote_count
フィールド名
タイプ
制約
id
シリアル
主キー
topic_id
整数
外部キー(トピックを参照)、NULLを許可
votes_count
整数
NULLを許可
created_at
タイムスタンプ
updated_at
タイムスタンプ
discourse_voting_votes
フィールド名
タイプ
制約
id
シリアル
主キー
topic_id
整数
外部キー(トピックを参照)、NULLを許可
user_id
整数
外部キー(ユーザーを参照)、NULLを許可
archive
ブール値
NULLを許可、デフォルトfalse
created_at
タイムスタンプ
updated_at
タイムスタンプ
プラグインの設定にも興味があるかもしれませんが、それはすでに把握されていると思います
最後に、トピックの投票はカテゴリごとに有効にする必要があるため、インポートスクリプトでカテゴリを作成する際に有効にすることをお勧めします。
移行中にトピックの投票を適切に設定する方法については、専門家ではありませんが、各投票にランダムでユニークなユーザーを使用すると思います。ジョブが同じユーザーからの複数の投票を防ぎ、重複する投票を削除するためです。
https://github.com/discourse/discourse-topic-voting/blob/main/app/jobs/onceoff/voting_ensure_consistency.rb#L28
必要なフィールド(決定すべき)を設定し、もしあれば他のフィールドはジョブで設定されるようにします。
プラグインのすべてのジョブも確認しておくとよいでしょう。discourse-topic-voting/app/jobs at main · discourse/discourse-topic-voting · GitHub
これが少しでもお役に立てば幸いです。どのように進んだか共有していただけると嬉しいです
「いいね!」 1
Luicid
(Luicid)
2023 年 7 月 4 日午前 9:10
3
素晴らしい、この素晴らしい、役立つ投稿をありがとうございます!
私は別の方法を選択することにしました:
元のウェブサイトでは、誰が何に投票したかのデータを取得できたので、その情報をデータベースに保存しました。その後、requestsライブラリを使用したPythonスクリプトを使用して、移行されたアカウントからすでに投票したアイデアに投票させました。そして、うまくいきました!
改めて感謝します。
「いいね!」 1