CSVファイルからのユーザー・トピックインポートの経験、ありますか?

わずか(82)人のユーザーと(133)件の投稿を、以前のプラットフォームでの不発に終わった試みから移行したいと考えています。数は少ないですが、コピー&ペーストでは手間がかかる程度です。CSVインポータースクリプトを試すことを tentative に希望しています。Rubyスクリプトを扱うのは初めてになります。

discourse/script/import_scripts/csv_importer.rb at main · discourse/discourse · GitHub に従ってCSVファイルを用意しました。

しかし、何か見落としているのでなければ、CSVインポートスクリプトは完全ではないようです。CSVの要件やスクリプトには、投稿を親トピックに関連付けるための規定が見当たりません。これがどのような結果になるのか分かりません。

また、元の投稿日も保持したいのですが、ここにはそのためのフィールドがありません。

Zendeskインポータ は、「topic_id」と「created_at」フィールドを扱っています。Zendeskインポータの方が良い選択肢なのか、それともCSVデータに不足しているフィールドでエラーになるのか分かりません。(私はZendeskから来たわけではありません。)

CSVインポータをそのまま使用した経験がある方、または機能を追加するために変更した経験がある方はいらっしゃいますか?

コアに組み込まれる前(@pfaffman のスポンサーシップを受けて開発されたもの)にCSVインポーターを使用しました。

トピック内の投稿や元の投稿日時が問題なく保持されていたように思えます。ステージングインスタンス(または単にバックアップ後)で試してみて、どうなるか確認してみてはいかがでしょうか?

もし問題があれば、スクリプトを修正すると良いでしょう。しかし、おそらく問題なく機能するはずです。

「いいね!」 1

しばらく保留していた件にようやく戻ってきました。成功の可能性があるなら、バックアップを取って何かを試す用意はありますが、もう少し自信が欲しいです。スクリプトの経験はあまりありませんが、@nathank が示唆するように、スクリプト自体にそれらの処理が定義されていないように見えるため、csvインポータ が投稿(返信)と日付をどのように保持するのかを理解したいです。

ユーザー、メールアドレス、カスタムユーザーフィールド、カテゴリ、トピックの限定されたフィールドをインポートします。

カスタムユーザーフィールドや新しいカテゴリは必要ないので、関連するCSVとその指定フィールドは次のとおりです。

 == CSV ファイル形式
ファイル名: users
ヘッダー: id,username

ファイル名: emails
ヘッダー: user_id,email

ファイル名: topics_new_users
ヘッダー: id,user_id,title,category_id,raw

ファイル名: topics_existing_users
ヘッダー: id,user_id,title,category_id,raw

このデータモデルをざっと見ると、Discourseのトピックと投稿は、いくつかの異なるフィールドを持つ2つの異なるものです。

スクリプトに投稿や日付を処理するものは見当たりません。

おそらく、トピックと投稿のデータを一緒にまとめるべきなのでしょうが、もしそうなら、Discourseはトピック/返信の関係をどのように推測するのでしょうか?入力の順序だけでしょうか?返信は、共有IDの最初の出現を持つトピックに関連付けられるのでしょうか?IDについては次のようにしか書かれていません。
topics_existing_users を除く、データ内の ID は、ファイル間で一貫している限り、任意の値でかまいません。

スクリプトに何か不足しているものがなければ、それは私の方にあります。何か明確な考えがあれば幸いです!