디스커스 커뮤니티 여러분,
구 Xenforo 데이터베이스에서 가져온 콘텐츠가 많은데, 몇 가지 사항을 제외하고 가져오려고 합니다.
최대한 스레드와 각 스레드의 첫 번째 게시물만 가져오고, 스레드 작성자를 이미 생성해 둔 다른 디스커스 포럼/사용자 계정으로 재지정하고 싶습니다. 이것이 충분히 쉬운 방식으로 가능한가요?
디스커스 커뮤니티 여러분,
구 Xenforo 데이터베이스에서 가져온 콘텐츠가 많은데, 몇 가지 사항을 제외하고 가져오려고 합니다.
최대한 스레드와 각 스레드의 첫 번째 게시물만 가져오고, 스레드 작성자를 이미 생성해 둔 다른 디스커스 포럼/사용자 계정으로 재지정하고 싶습니다. 이것이 충분히 쉬운 방식으로 가능한가요?
가져오기 스크립트의 SQL만 수정하면 됩니다
SELECT p.post_id id,
t.thread_id topic_id,
#{@prefix_as_category ? "t.prefix_id" : "t.node_id"} category_id,
t.title title,
t.first_post_id first_post_id,
t.view_count,
p.user_id user_id,
p.message raw,
p.post_date created_at
FROM #{TABLE_PREFIX}post p,
#{TABLE_PREFIX}thread t
WHERE p.thread_id = t.thread_id
AND p.message_state = 'visible'
AND t.discussion_state = 'visible'
ORDER BY p.post_date
LIMIT #{BATCH_SIZE}" # OFFSET 필요
WHERE 절에 AND p.post_id = t.first_post_id를 추가하세요
다음과 같이 변경하세요
mapped[:user_id] = user_id_from_imported_user_id(m["user_id"]) || -1
다음으로 변경합니다.
mapped[:user_id] = xxx
여기서 xxx는 주제를 할당하려는 Discourse 사용자 ID입니다.
@RGJ 빠른 답변 감사합니다. 혹시 올바른 수정 사항을 반영한 SQL 문장을 보여 주실 수 있을까요? WHERE 절에 AND p.post_id = t.first_post_id를 추가해 봤는데, 문장에서 SQL 검증 오류가 발생합니다.
아, 그리고 이 가져오기 스크립트는 어디에 있나요? 이렇게 세심하게 알려주셔서 감사합니다. 정말 감사해요.
Marketplace 채널에 관련 주제를 올려보시는 게 좋을 것 같습니다.
이런 오류가 발생하고 있습니다:
cannot load such file – /var/discourse/config/environment
그리고 base.rb의 16번째 줄에는 다음 내용이 있습니다:
require_relative “../../config/environment”
어떤 import/마이그레이션 튜토리얼에서도 이 파일이 존재하지 않는다는 사실에 대해 언급하지 않았습니다.