여러분 안녕하세요,
특정 사용자의 게시글을 텍스트/CSV 파일로 내보내고 싶은데, 데이터 탐색기나 다른 방법으로 이를 달성하는 방법을 아시는 분 계신가요?
여러분 안녕하세요,
특정 사용자의 게시글을 텍스트/CSV 파일로 내보내고 싶은데, 데이터 탐색기나 다른 방법으로 이를 달성하는 방법을 아시는 분 계신가요?
데이터 탐색기에서 이 코드가 작동하는 것을 발견했습니다.
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개만 표시됩니다. 게시물이 약 5,000개 정도 있는 상태에서 이 제한을 우회할 수 있는 방법이 있을까요?
사용자는 환경설정의 데이터 내보내기 섹션을 통해 자신의 게시물 및 기타 데이터를 CSV 형식으로 전체 복사본을 요청할 수 있습니다.
예를 들어, 이 메타 사이트에서는 다음 경로에서 요청할 수 있습니다:
https://meta.discourse.org/my/preferences/account
시스템이 zip 파일 링크를 메시지로 전송합니다. user_archive.csv 파일에는 게시물 데이터가 포함되어 있습니다.
하지만 여기에는 PM도 포함되어 있고, 저는 공개된 게시물만 원합니다.
5,000개라는 숫자가 개인 메시지(PM, 삭제된 메시지 포함)까지 포함하고 있고, 카테고리별로 필터링을 하고 있기 때문이 아닐까요?
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