ユーザーがCSVまたはテキストとしてエクスポート

皆さん、こんにちは。

ユーザーの投稿をテキスト/CSVファイルとしてエクスポートしたいのですが、data explorer または他の方法でこれを達成する方法を知っている方はいますか?

このコードはデータエクスプローラーで動作します。

SELECT t.title, p.raw as text, p.created_at as dateposted
FROM posts p
LEFT JOIN topics t ON t.id = p.topic_id
WHERE t.archetype != 'private_message'
AND t.user_id = 1
AND p.user_id = 1
AND t.category_id IN (13,7,1,)
AND t.deleted_at is null

しかし、結果は336件しか表示されません。5000件近く投稿があるのですが、この制限を回避する方法はありますか?

ユーザーは、設定の「データの書き出し」セクションから、投稿やその他のデータをCSV形式で完全コピーすることをリクエストできます。

例えば、ここではメタサイトの場合、以下の場所にあります。
https://meta.discourse.org/my/preferences/account

システムは、zipファイルへのリンクを添えてユーザーにメッセージを送信します。user_archive.csv には、投稿データが含まれています。

しかし、これにはPMも含まれており、公開投稿のみを希望します。

それは、5000件の投稿にプライベートメッセージ(削除されたメッセージも含むかもしれません)が含まれていて、あなたがカテゴリをフィルタリングしているからではないでしょうか?

t.user_id を含めると、ユーザーが OP でもある投稿しか取得できません。それが主な問題でしょうか?

いくつか追加で役立つかもしれない点に気づきました。例えば:

-- [params]
-- user_id :user

SELECT t.id AS topic_id,
       t.title,
       p.raw as text,
       p.created_at as dateposted
FROM posts p
JOIN topics t ON t.id = p.topic_id
WHERE t.archetype != 'private_message'
  AND p.post_type IN (1, 4)
  AND p.user_id = :user
  AND t.deleted_at ISNULL
  AND p.deleted_at ISNULL
ORDER BY p.created_at
「いいね!」 1