테스트하는 방법 중 하나는 컨테이너에 진입하여 /var/www/discourse/plugins/discourse-data-explorer/plugin.rb 파일을 편집하고 QUERY_RESULT_MAX_LIMIT = 10000 값을 변경한 후, sv restart unicorn 명령을 실행하여 결과를 확인하는 것입니다. 물론 그렇게 큰 크기의 쿼리를 허용하지 않는 데에는 이유가 있습니다. 인프라가 이를 처리할 수 있을 것이라고 확신하거나, 약간의 불안정성을 감수할 수 있다면 이 방법이 작동할 수 있습니다.
만약 문제가 발생하지 않는다면, app.yml에 일부 설정을 추가하여 모든 재빌드 시 플러그인이 클론된 후 해당 파일이 수정되도록 할 수 있습니다. 다만 docker_manager를 통한 업그레이드 시 충돌이 발생할 가능성이 높습니다. (일부 설정이 무엇인지 파악하려면 파일을 수정하는 다른 템플릿들을 참고해 볼 수 있습니다.)
@DonH 님, 해당 쿼리를 자주 사용해야 하고 그것 하나뿐이라면, 이를 어떤 방식으로든 전달해 주는 플러그인을 만드는 것이 좋을 수 있습니다. 예를 들어, 특정 경로를 통해 가져올 수 있도록 파일을 청크 단위로 작성하는 방식 등이 가능합니다.
이 조언을 알려주셔서 감사합니다, Jay. 실제로 플러그인을 작성하는 것에 대해 생각해 보기도 했지만, 다양한 일괄 작업을 위해 rails 콘솔에서도 실행 가능해야 한다고 생각했습니다. 그런데 저는 rails를 잘 모르고, 어쨌든 내장된 함수를 트리거해야 하는 것 같더군요. 그렇게 하면 작업이 코어에 커밋되지 않는 한 동일한 덮어쓰기 문제가 발생할 것입니다.
지금까지는 하향 조정에는 Data Explorer를, 상향 조정에는 (매우 신중하게) psql를 사용하며 관리해 왔지만, 운명이 운명인 만큼 정석대로 처리하는 것이 훨씬 낫겠습니다.
제가 어떤 일을 하고 있는지 명확히 설명해야 할 것 같습니다.
저는 포럼을 운영하고 있습니다. 이 포럼은 제 손에 오기 전에 Phorum과 phpBB 소프트웨어를 거쳐온 것을 포함해 세 번째 또는 네 번째 형태로 재탄생했습니다. 다루는 주제는 좁고 사용자 기반도 작지만, 이전 형태에서 현재까지 이어져 온 콘텐츠는 상당한 기관적 지식을 담고 있습니다. Discourse는 분류, 태그 및 인터페이스 기능 덕분에 지식 접근성을 위한 훌륭한 솔루션처럼 보였습니다.
따라서 이전 incarnations(형태)에서 분류나 태그가 전혀 없었던 포럼을 이식했습니다. 10만 개의 게시물/8천 개의 스레드를 일일이 살펴보는 대신, 분류와 태그를 돕기 위해 자연어 처리 소프트웨어를 사용했습니다. 그리고 말했듯이 매우 신중하게 topic, category, topic_tag 테이블을 직접 업데이트했습니다.
이 과정은 아직 진행 중이지만 안정적인 워크플로우를 갖추고 있어 손에 있는 도구로 쉽게 마무리할 수 있습니다. 다만 앞으로는 이전 데이터와 같거나 다를 수 있는 새로운 분류와 태그를 적용하기 위한 정기적인 업데이트가 필요합니다. 그래서 그 필요성을 이해하실 수 있을 것입니다.
물론 Data Explorer는 일방향 흐름이지만 매우 편리했습니다. 배치 처리를 통해 크기 한도를 극복할 수 있었고, 이제 한도 설정을 높여주셔서 감사합니다.