오래된 주제 정리하기

안녕하세요,

고등학생 사용자를 위한 저희 디스코र्स 사이트는 매우 성공적이었습니다. 너무 성공적이어서요. 2021년 1월에 시작하여 지난 2년 동안 230만 개의 게시물과 290만 개의 좋아요를 기록했습니다.

비용 절감뿐만 아니라 해킹이나 유사한 장기적 위험을 줄이기 위해 사이트를 좀 더 정리하고 싶습니다. 처음부터 다시 시작하는 것은 고통스러울 것이지만, 토픽 URL 끝에 /print를 추가하여 1,000개 댓글 페이지를 PDF로 만드는 방법을 발견한 것이 도움이 됩니다. 예를 들어 가장 오래된 1년치 토픽을 깔끔하게 삭제할 수 있는 방법이 존재한다고는 정말로 믿기 어렵습니다(찾아보았지만 없었습니다).

어떤 생각이 있으신가요? 처음부터 다시 시작해야 하는지, 아니면 다른 선택지가 있는지 알려주시면 감사하겠습니다.

가브리엘 지벤(Gabriel Sieben)

안녕하세요! Discourse가 프로젝트에서 잘 작동했다는 소식을 듣고 기쁩니다 :smiley: :+1:

정확히 이해했는지 확인하기 위해 질문드리는데; 주제를 삭제 대상으로 삼는 기준은 단순히 그 주제의 나이(생성된 지 오래됨)뿐인가요?

인터페이스에 이를 허용하는 내장 기능이 없지만, 특정 날짜보다 오래된 주제를 삭제하는 rails 스크립트를 작성하고 수동으로 실행할 수 있습니다.

Topic.where("created_at.....").destroy_all

대괄호 안은 SQL 쿼리입니다.

네, 맞습니다. 단, 모든 곳에 깨진 링크와 맥락이 끊기는 문제가 발생하지 않는다면요. 인용된 부분들은 영향을 받지 않기를 바랍니다.

업로드된 파일들도 정리되나요?

인용문의 내용은 그대로 유지됩니다.
삭제된 주제에 대한 내부 링크의 경우, “not found” 페이지로 연결됩니다.

네, 업로드 파일은 기본적으로 2일 후 삭제됩니다(다른 곳에서 사용 중인 경우, 예를 들어 다른 주제의 인용문 안에 있는 경우 제외). clean orphan uploads grace period hours 설정을 참조하십시오.

다만, 주제와 게시물은 소프트 삭제됩니다. 숨겨지지만 데이터베이스에는 여전히 저장됩니다.


추가로, 제가 말하는 내용이 거의 맞지만 100% 확신은 없습니다… 더 잘 아시는 사용자가 여기에 답변을 남겨주기를 기다리는 것이 더 나을 것 같습니다. :slight_smile:

앞으로 해볼 수 있는 한 가지로, 채팅을 활성화하는 방법을 제안합니다. 대화가 대부분의 활동일 것 같고, 특히 삭제하려는 목적이라면 더 적합합니다. 이렇게 하면 내용이 자동으로 정리됩니다(기본값은 90일이라고 생각하는데, 이는 아마도 충분한 기간일 것입니다).

그리고 오래된 내용 중 중요한 것이 하나도 없나요? 만약 일부가 중요하다면, 좋은 내용을 어떻게 유지할 계획인가요? 범주별로 구분할까요?

Topic.destroy가 PostDestroyer를 호출하는 것으로 보이므로, 해당 토픽을 삭제하면 원하는 결과를 얻을 수 있을 것 같습니다.

프로덕션 서버에서 이 작업을 수행하기 전에 테스트 사이트를 설정하여 먼저 테스트해 보시길 권장합니다.

대신 졸업 연도별로 Discourse 사이트를 여러 개 만드는 것도 고려해 볼 수 있습니다. 그렇게 하면 때가 되면 사이트를 닫으면 됩니다. 학교 전체를 위한 별도의 사이트를 만들고, 인증 서버(학교 전체용 Discourse 또는 학교/교육구가 사용하는 인증 서버)를 공유하는 것도 좋은 방법입니다. 아, 아니면 이건 고등학생용이지만 고등학교는 아닌 경우일 수도 있겠네요. 그렇다면 이 재구조화는 적합하지 않을 수 있습니다.