Olá,
Qual é a melhor maneira de definir default_limit para algo como 12345678?
Suponha que eu precise e queira mais de 1000 linhas.
Olá,
Qual é a melhor maneira de definir default_limit para algo como 12345678?
Suponha que eu precise e queira mais de 1000 linhas.
Não consigo descobrir a que default_limit você está se referindo. Não vejo isso em site_settings.yml. O que você está tentando fazer? E você está tentando fazer isso em um plugin ou componente de tema (já que você postou em dev)?
Ok, a única maneira é definir outro valor como este:
Eu esperava que houvesse uma maneira melhor na interface de configurações do Discourse.
./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
Certamente não é a única maneira.
Conforme meu link, você pode fazer um fork do plugin, alterar a constante e clonar seu fork.
Você sempre poderia enviar um PR para uma configuração de plugin nesse plugin…
Não é a única maneira. É possível fazer alterações como essa com o launcher. Você pode consultar outros modelos como exemplos de como fazer alterações em arquivos.
Se esta não for a única maneira, você pode fornecer um exemplo, obrigado.
Eles recentemente alteraram o código para novas configurações ocultas…
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
Como se pode alterar essa “configuração oculta” da forma mais avançada?
Espero que não seja necessário editar o código para alterar um limite tão básico do plugin.
Você pode alterar uma configuração oculta do site usando o console do Rails (se você tiver acesso ao servidor).
cd /var/discourse
./launcher enter app
rails c
SiteSetting.data_explorer_query_result_limit = 10000
Embora o limite superior seja 10.000, e eu acredite que este seja apenas o número de resultados exibidos ‘na tela’ - você já pode exportar 10.000 resultados mesmo com a configuração no padrão de 1000.
Acho que adicionar um deslocamento de página à sua consulta é útil se você quiser obter lotes para exportar e juntar em uma planilha (etc.). por exemplo:
-- [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
Eu só obtive 1000 resultados ao consultar uma query via API e, considerando a sobrecarga significativa por solicitação (fator 100 para a solicitação bruta ao banco de dados), prefiro aumentar esse limite do que fazer várias consultas. ![]()
Essa abordagem do console do Rails é persistente em atualizações de software e reinicializações?
Alterar uma configuração do site através do console do Rails é o mesmo que fazê-lo através da interface do usuário (apenas para as ocultas não há interface do usuário
), então a alteração permanecerá e não será afetada por reconstruções ou reinícios, etc. ![]()
Meu conhecimento sobre executá-los através da API não é tão bom quanto a maneira regular, mas acho que há um método de obter os 10.000 completos sem alterar a configuração no console do Rails neste tópico - Run Data Explorer queries with the Discourse API
Obrigado, esse parâmetro limit=ALL resolve para mim.