데이터 탐색기에서 response의 default_limit를 변경하는 방법?

안녕하세요,

default_limit을 12345678과 같은 값으로 설정하는 가장 좋은 방법은 무엇인가요?
1000행 이상의 데이터가 필요하다고 가정해 보겠습니다.

default_limit이 뭔지 모르겠어요. site_settings.yml에서 그걸 찾을 수가 없거든요. 뭘 하려고 하는 건가요? 그리고 플러그인이나 테마 컴포넌트에서 하려는 건가요? (개발 관련 포럼에 게시하셨으니까요)

data-explorer 플러그인의 default_limit…

음, 다른 값을 이렇게 설정하는 것이 유일한 방법인 것 같습니다:
Discourse 설정 UI에서 더 나은 방법이 있기를 바랐습니다.

./launcher enter app
cd /var/www/discourse/plugins/discourse-data-explorer/
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 12345678/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb

절대 유일한 방법은 아닙니다.

제 링크에서 확인하실 수 있듯이, 플러그인을 포크하고 상수를 수정한 후 포크한 저장소를 클론할 수 있습니다.

항상 해당 플러그인에 플러그인 설정을 PR(풀 리퀘스트)으로 제안할 수도 있습니다…

유일한 방법은 아닙니다. 런처를 통해 이러한 변경 사항을 수행할 수 있습니다. 파일 변경 방법을 보여주는 예시를 확인하려면 다른 템플릿을 참고해 보세요.

이것이 유일한 방법이 아니라면, 예를 하나 보여 주시겠습니까? 감사합니다.

최근 코드를 새로운 숨겨진 설정으로 변경했습니다…

cd /var/discourse
./launcher enter app
sed -i 's/QUERY_RESULT_DEFAULT_LIMIT = 1000/QUERY_RESULT_DEFAULT_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/QUERY_RESULT_MAX_LIMIT = 1000/QUERY_RESULT_MAX_LIMIT = 10000000/g' /var/www/discourse/plugins/discourse-data-explorer/plugin.rb
sed -i 's/default: 1000/default: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
sed -i 's/max: 10000/max: 10000000/g' plugins/discourse-data-explorer/config/settings.yml
rails c
SiteSetting.data_explorer_query_result_limit=1000000
exit
exit
reboot

이러한 "숨겨진 설정"을 가장 간편하게 변경하는 방법은 무엇인가요?

이러한 플러그인의 기본 한도를 변경하려면 코드를 수정해야 하지 않기를 바랍니다.

서버 접근 권한이 있는 경우, Rails 콘솔을 사용하여 숨겨진 사이트 설정을 변경할 수 있습니다.

cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000

최상한 값은 10,000이며, 이것이 화면에 표시되는 결과의 수만이라고 생각합니다. 기본값인 1000으로 설정되어 있더라도 이미 10,000개의 결과를 내보낼 수 있습니다.

스프레드시트(등)에서 합치기 위해 배치 단위로 내보내고자 한다면 쿼리에 페이지 오프셋을 추가하는 것이 유용합니다. 예:

-- [params]
-- integer :page = 0
-- integer :limit = 10000

SELECT 
    category_id,
    created_at::date,
    id AS topic_id,
    views
FROM topics
WHERE deleted_at IS NULL
ORDER BY created_at DESC
OFFSET :page * :limit
LIMIT :limit

API를 통해 쿼리를 실행했을 때 1000개만 반환되었습니다. 요청마다 상당한 오버헤드(데이터베이스에 대한 원본 요청 대비 100배)가 발생하기 때문에, 여러 번의 쿼리를 실행하기보다는 이 한도를 높이는 편이 낫습니다. :slight_smile:

그 레일 콘솔 방식은 소프트웨어 업그레이드와 재시작 후에도 유지되나요?

Rails 콘솔을 통해 사이트 설정을 변경하는 것은 UI를 통해 변경하는 것과 동일합니다(숨겨진 설정의 경우 UI가 없어서 :slight_smile:). 따라서 변경 사항은 유지되며, 재빌드나 재시작 등의 영향도 받지 않습니다. :+1:

API를 통해 실행하는 방식에 대한 제 지식은 일반적인 방식만큼 좋지 않지만, 이 주제에서 Rails 콘솔의 설정을 변경하지 않고 전체 10,000개를 가져오는 방법이 있다고 생각합니다 - Run Data Explorer queries with the Discourse API

감사합니다. limit=ALL 파라미터가 제 문제를 해결해 주었습니다.