잠시 보류했다가 이제야 다시 이 문제로 돌아왔습니다. 성공할 가능성이 있다고 판단되면 백업을 실행하고 무언가를 시도해 보려 하지만, 확신을 조금 더 갖고 싶습니다. 스크립팅 경험은 많지 않지만, @nathank 님이 제안하신 대로 csv importer가 게시글(답글)과 날짜를 어떻게 보존하는지 이해하고 싶습니다. 스크립트에는 이들에 대한 처리가 정의되어 있지 않아 보이기 때문입니다.
이 스크립트는 사용자, 이메일, 사용자 정의 필드, 카테고리, 주제에 대해 제한된 필드만 가져옵니다.
저는 사용자 정의 필드나 새 카테고리가 필요하지 않으므로, 관련 있는 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의 주제(Topics)와 게시글(Posts)은 몇 가지 구별되는 필드를 가진 서로 다른 개체입니다:
스크립트에서 게시글 — 또는 날짜를 처리하는 부분은 보이지 않습니다.
수신된 주제와 게시글 데이터를 함께 묶어 넣어야 하는 걸까요? 그렇다면 Discourse는 주제/답글 관계를 어떻게 추론할까요 — 단순히 입력 순서에 의해서만 그런 걸까요? 답글은 공유된 ID가 처음 등장하는 주제를 기준으로 연결되는 걸까요? ID에 대해 스크립트가 언급하는 것은 이것뿐입니다:
topics_existing_users를 제외하고, 데이터의 ID는 파일 간에 일관성만 유지된다면 무엇이든 될 수 있습니다.
만약 스크립트에 무언가 빠진 것이 아니라면, 제가 무언가를 놓치고 있는 것이겠지요. 어떤 설명이나 조언도 감사히 받겠습니다!
